public class RemoveDirectoryTest {
/**
* @param args
* 需求:删除一个带内容的目录
* 思路:
* 1, 删除完文件夹原理是:必须是从里往外删除,必须保证该文件夹为空,该文件夹才可以被删除
* 2, 它里面到底有多少级层级目录,是不清楚的,所以必须用到递归
*/
public static void main(String[] args) {
//封装目录
File dir = new File("D:\\abc");
//调用自定义方法removeDir
removeDir(dir);
}
public static void removeDir(File dir) {
//1. 列出指定目录下的所以文件对象
File[] files = dir.listFiles();
//2. 遍历该数组中所有文件对象,并对其进行判断
for(File file : files){
//对file对象进行继续判断,如果是文件夹,继续调用该方法,继续判断
if(file.isDirectory()){//如果是目录继续绩效判断
removeDir(file);//递归调用removeDir方法
}else{
System.out.println(file.toString()+" :"+file.delete());//调用File的delete方法删除文件
}
}
System.out.println(dir.toString()+" :"+dir.delete());//delete方法可以删除文件或文件夹
}
} |