package test;
import java.io.File;
import java.util.Objects;
/**
* 递归实现文件夹以及子文件、文件夹的删除,注意,如果运行期间出现异常,那么之前做的删除操作依旧作数,只要代码运行就会删除文件
* @author : Barry.chen
* @date : 2024-04-13
**/
public class Test {
// 设置要删除的文件夹路径 例子:(D:\\ZZZ)
private final static String FOLDER_PATH = "文件路径";
private static boolean deleteFile(String filePath){
// 拿到文件夹
File file = new File(filePath);
// 文件夹下所有文件
File[] allFile = file.listFiles();
if (Objects.isNull(allFile)) {
file.delete();
return true;
}
// 到这个位置了,一定有子文件夹或者子文件
for (File everyFile : allFile) {
if (everyFile.isDirectory()) {
// 遍历遇到文件夹了,递归删除文件夹内部的文件
deleteFile(everyFile.getPath());
}
if (everyFile.isFile()) {
// 遍历遇到文件了,删除
everyFile.delete();
}
}
if (allFile.length != 0 && file.isDirectory()) {
// 没删干净或者有子文件夹,再来一遍
deleteFile(filePath);
}
// 子文件夹全部删完,准备删父文件夹
// 删掉空的父文件夹
file.delete();
// 结束
return true;
}
// 方法调用
public static void main(String[] args) {
deleteFile(FOLDER_PATH);
}
}
Java递归删除文件夹以及文件夹下的子文件(包含子文件夹)
于 2024-04-13 10:46:41 首次发布