递归删除一个非空文件夹
程序员文章站
2022-05-30 14:48:52
...
java 用递归算法实现删除一个非空文件夹
package io_study.dir_test.delAllDir_exercises;
import java.io.File;
/**
* @description: 删除非空文件夹增强练习
* @author zdl
*/
public class DelAllDir {
public static void main(String[] args) {
// 1、创建路径
String pathStr = "G:/All Users03";
File src = new File(pathStr);
// 2、 包装成方法来删除
delNoNullDir(src);
}
public static void delNoNullDir(File src) {
// 判断是否存在
if(src.exists()) {
// 路径存在时,判断是文件还是目录
if(src.isFile()) {
// 是文件的话,直接删除
src.delete();
} else {
// 是目录的话,需要或的子孙级的 File[] 数组,然后递归本体
File[] childs = src.listFiles();
if(childs.length == 0) { // 递归头
// 是空文件夹,可以直接删除
src.delete();
} else { // 递归体
// 非空文件夹,需要先递归删除子孙级,然后删除本身
for(File child : childs) {
delNoNullDir(child);
}
// 删除本身
src.delete();
}
}
} else {
System.out.println("路径不存在,请重新操作");
}
}
}
下一篇: 写一个函数可以遍历所有文件夹和文件