`

java中删除某文件夹下的所有文件和文件夹

阅读更多

网上找了半天也没找到一个合适的例子,本人写了一个以供大家参考
该例子虽实现了功能,但本人觉得有点啰嗦,有待改进,
大家有好的例子也可发布一下供参考,谢谢!

package demo;

import java.io.File;

public class DemoFile {

 /**
  * @param args
  */
  //删除文件夹下的所有文件
    public static boolean deleteAllFile(String folderFullPath){
        boolean ret = false;
        File file = new File(folderFullPath);
        if(file.exists()){
          if(file.isDirectory()){
              File[] fileList = file.listFiles();
    for (int i = 0; i < fileList.length; i++) {
     String filePath = fileList[i].getPath();
     deleteAllFile(filePath);
    }
   }
             if(file.isFile()){
              file.delete();
             }
        }
        return ret;
    }
    //删除文件夹下的所有空文件夹,注意必须是空文件夹,该方法可能一次不能全部删除,需在调用时多次执行
    public static boolean deleteAllFullFolder(String folderFullPath){
        boolean ret = false;
        File file = new File(folderFullPath);
        if(file.exists()){
         File[] fileList=file.listFiles();
         if(fileList.length>0){
          for(int i=0;i<filelist.length;i++){<br>            String filePath = fileList[i].getPath();
           deleteAllFullFolder(filePath);
          }
         }else{
          file.delete();
         }
        }
        return ret;
    }
 public static void main(String[] args) {
  //测试,在window测试通过
  //删除该目录下的所有文件和文件夹,并删除该目录
  String folderFullPath="D://test//test";
  deleteAllFile(folderFullPath);
  File file=new File(folderFullPath);
  if(file.exists()){
   while(!file.delete()){
    deleteAllFullFolder(folderFullPath);
   }
  }
  file.mkdir();//如不想删除根目录,可以再创建一下

 }
 }

分享到:
评论
3 楼 linder0209 2011-01-26  
shensuqiao 写道
你的方法有点重复了,deleteAllFile方法作如下改动就可以了:
public static boolean deleteAllFile(String folderFullPath){
        boolean ret = false;
        File file = new File(folderFullPath);
        if(file.exists()){
          if(file.isDirectory()){
              File[] fileList = file.listFiles();
    for (int i = 0; i < fileList.length; i++) {
     String filePath = fileList[i].getPath();
     deleteAllFile(filePath);
    }
   }
             if(file.isFile()){
              file.delete();
             }
        }
        return ret;
      file.delete();//加上这一行,就可以不用deleteAllFullFolder方法了
    }


谢谢你的关注,共同学习,共同提高,呵呵
2 楼 shensuqiao 2011-01-25  
咳咳,加错地方了,应该加在return前
1 楼 shensuqiao 2011-01-25  
你的方法有点重复了,deleteAllFile方法作如下改动就可以了:
public static boolean deleteAllFile(String folderFullPath){
        boolean ret = false;
        File file = new File(folderFullPath);
        if(file.exists()){
          if(file.isDirectory()){
              File[] fileList = file.listFiles();
    for (int i = 0; i < fileList.length; i++) {
     String filePath = fileList[i].getPath();
     deleteAllFile(filePath);
    }
   }
             if(file.isFile()){
              file.delete();
             }
        }
        return ret;
      file.delete();//加上这一行,就可以不用deleteAllFullFolder方法了
    }

相关推荐

Global site tag (gtag.js) - Google Analytics