Java递归删除文件(包括子目录)
思路
递归的解题步骤
- 实现递归到底是怎么样的,该做什么(终止条件)
- 实现递归的倒数第二步该做什么。
- 实现整个程序的最后一个步骤,应该返回什么值,该干什么
package Day15;
import java.io.File;
import java.util.Arrays;
/**
* @author: AmberZxh
* @DateTime: 2021/1/16 2:15 下午
* @description:
* 思路:
递归最终条件
* - 获取目录的下的所有File对象(包括文件和文件夹)
* - 判断,如果是一个空目录或者file对象不是一个目录而是文件
* - 直接删除
上一步该怎么做
* - 程序执行到这里,那么一定是一个目录,且不是空目录
* - 遍历获取的file数组
* - 如果这个file对象仍然是一个目录,递归删除该目录
* - 如果这个file对象是文件,直接删除
程序最后要干什么
* - 最后不要忘记删除已经是空目录的当前目录
*/
public class Main {
public static void delDir(File file){
File[] files = file.listFiles();
if(files==null||files.length==0){
file.delete();
return ;
}
for (File file1 : files) {
if(file1.isDirectory()){
delDir(file1);
}else {
file1.delete();
}
}
file.delete();
}
public static void main(String[] args) {
File file=new File("/Users/zhangxuhui/public/firstLevel");
delDir(file);
}
}