java 删除文件和删除文件夹下面的文件

来源:互联网 发布:数据迁移方案101data 编辑:程序博客网 时间:2024/04/29 15:23


//删除已生成的文件
public void delExportFolderAndFile(){
RequestContext rctx = RequestContext.get();
//删除reports文件夹以及它下面的所有文件
//String dir = "/reports/";
String dir = "/reports/" + rctx.getLogin().getName() + "/";
String realPath = rctx.getServletContext().getRealPath(dir);
delFolder(realPath);
}



//删除文件夹
public void delFolder(String folderPath) {
       delAllFile(folderPath); //删除完里面所有内容
       String filePath = folderPath.toString();
       File myFilePath = new java.io.File(filePath);
       myFilePath.delete(); //删除空文件夹
}


//删除文件夹下面的所有文件
public boolean delAllFile(String path) {
   boolean flag = false;
   File file = new java.io.File(path);
   if(!file.exists()) {
     return flag;
   }
   if (!file.isDirectory()) {
     return flag;
   }
   String[] tempList = file.list();
   File temp = null;
   for (int i = 0; i < tempList.length; i++) {
      if(path.endsWith(File.separator)) {
         temp = new java.io.File(path + tempList[i]);
      }else {
          temp = new java.io.File(path + File.separator + tempList[i]);
      }
      if(temp.isFile()) {
         temp.delete();
      }
      if(temp.isDirectory()) {
         delAllFile(path + "/" + tempList[i]);//先删除文件夹里面的文件
         delFolder(path + "/" + tempList[i]);//再删除空文件夹
         flag = true;
      }
   }
   return flag;
}