package com.heima.test;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class DeleteFile {
public static void main(String[] args) {
/* String dir = "C:\\Users\\U100926\\Desktop\\delete\\me\\you\\";
boolean success = (new File(dir)).delete();
if (success) {
System.out.println("Successfully deleted empty directory: " + dir);
} else {
System.out.println("Failed to delete empty directory: " + dir);
}*/
deleteDirectory("C:\\Users\\U100926\\Desktop\\delete\\me\\you\\");
}
public static boolean deleteDirectory(String directoryPathStr) {
Path reportPath = Paths.get(directoryPathStr);
//先遍历删除文件夹中文件,再删除文件夹
if (Files.exists(reportPath)) {
try {
List<File> directoryList = new ArrayList<>();
Files.walk(reportPath).map(Path::toFile).forEach(file -> {
if (file.isFile()) {
//文件直接删除
file.delete();
} else {
directoryList.add(file);
}
});
//设备最大循环次数,防止死循环
int time = 0, maxTime = directoryList.size();
while (directoryList.size() > 0 && time < maxTime) {
//遍历删除
directoryList.removeIf(file -> file.list().length == 0 && file.delete());
time++;
}
} catch (Exception e) {
return false;
}
}
return true;
}
}
执行代码后