/* 递归删除目录
目录结构为如下(尽量不要在c盘中测试哈)
firstLevel目录中,包含一个secondLevel目录和a1.txt和b1.java文件
secondLevel目录中包含dir1和dir2两个目录,和a2.txt和b2.java文件
dir1目录中包含a3.txt和b3.java文件
dir2目录是一个空目录
要求删除firstLevel目录 */
import java.io.File;
public class day1901 {
public static void main(String[] args) {
//创建目标对象
File dir = new File("e:\\firstLevel");
delete(dir);
System.out.println("删除成功");
}
public static void delete(File dir) {
//获取当前目录下所有的文件and目录
File[] files = dir.listFiles();
if (files==null||files.length==0){
//当dir不是目录或者是空目录,直接删除
dir.delete();
return;
}
for (int i = 0; i <files.length ; i++) {
//递归删除当前dir目录下的所有文件或目录
if (files[i].isDirectory()){
//如果File对象表示的是目录则递归删除子目录
delete(files[i]);
}else{
//不是目录,则是文件
files[i].delete();
}
}
//递归删除完当前dir中的子文件或者子目录后,当前目录已经空了,可以直接删除当前的dir目录
dir.delete();
}
}
思路:采用递归思想,访问目录后判断是否为文件或者空目录,如果是直接删除,如果不是采取同样的方法判断,递归删除.