关于File类如何删除不为空的文件夹(已解决)

import java.io.File;
public class deleDemo {
 public static void main(String[] args) {
  demo(new File("D:\\javaTest"));
  //demo2(new File("D:\\javaTest"));
 }
 /*方式1*/
 public static void demo(File f){//传一个File对象f进去  因为要调用其方法
  if(f!=null){//判断f数据是否为空    因为可能有人会传null值进来
   if(f.exists()){//判断该抽象路径的目录和文件是否存在
    if(f.isDirectory()){//判断是否是目录
     File[] listFiles = f.listFiles();//调用listFiles()方法返回一个File对象组成的数组集合
     if(listFiles==null){//如果该数组为Null说明没有文件和目录对象  就是一个空的文件夹
      f.delete();//直接删除
     }else{//不为空的文件夹
      for (File file : listFiles) {//遍历该集合
       demo(file);//遍历到的每个File对象传入demo()方法
      }
      f.delete();//最后将这个不为空的文件夹删除
     }
    }else{//不是目录可能是是文件或者不存在
     f.delete();//直接删除
    }
   }else{//为Null
    return;//结束方法调用
   }
  }
 }
 /*方式2*/
 public static void demo2(File f2){//传一个File对象f2进去  因为要调用其方法
  if(f2!=null){
   return;//判断f2数据是否为空    因为可能有人会传null值进来
  }
   if(f2.exists()){//测试抽象路径名的目录和文件是否存在
    if(f2.isDirectory()){//判断是否是目录
     File[] listFiles = f2.listFiles();//调用listFiles()方法返回一个File对象组成的数组集合
     for (File file : listFiles) {//遍历listFiles集合,遍历到的每个对象用File对象装
      demo2(file);//调用自身方法将遍历到的每个File对象传进去再作判断
     }
    }
    f2.delete();//因为如果不是空文件,再这里遍历删除的只是文件里面的东西,该文件还存在,所以还要做一次删除,这里这段代码会最后执行
   }
 }
 
}
posted @ 2018-12-16 23:19  朴剑  阅读(1042)  评论(0编辑  收藏  举报