64 lines
1.8 KiB
Java
64 lines
1.8 KiB
Java
|
|
import java.io.File;
|
|
import java.util.HashSet;
|
|
import java.util.Set;
|
|
|
|
public class DeleteEmptyFolders {
|
|
|
|
// 白名单路径集合
|
|
private static final Set<String> WHITELIST_PATHS = new HashSet<>();
|
|
|
|
static {
|
|
// 添加白名单路径,请根据实际需求修改
|
|
// WHITELIST_PATHS.add("/Users/zhanglaiman/WorkSpace/Molistar/core/src/main/java/com");
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
String targetDir = "/Users/zhanglaiman/WorkSpace/Molistar/app";
|
|
File rootDir = new File(targetDir);
|
|
deleteEmptyFolders(rootDir);
|
|
}
|
|
|
|
private static boolean isDirectoryEmpty(File dir) {
|
|
File[] files = dir.listFiles();
|
|
if (files == null || files.length == 0) {
|
|
return true;
|
|
}
|
|
for (File file : files) {
|
|
if (file.isDirectory()) {
|
|
if (!isDirectoryEmpty(file)) {
|
|
return false;
|
|
}
|
|
} else if (file.getName().endsWith(".java")) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
private static void deleteEmptyFolders(File dir) {
|
|
if (dir == null || !dir.exists() || dir.isFile()) {
|
|
return;
|
|
}
|
|
|
|
// 跳过白名单中的路径
|
|
if (WHITELIST_PATHS.contains(dir.getAbsolutePath())) {
|
|
System.out.println("跳过白名单路径: " + dir.getAbsolutePath());
|
|
return;
|
|
}
|
|
|
|
File[] files = dir.listFiles();
|
|
if (files != null) {
|
|
for (File file : files) {
|
|
if (file.isDirectory()) {
|
|
deleteEmptyFolders(file);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (isDirectoryEmpty(dir)) {
|
|
System.out.println("删除空文件夹: " + dir.getAbsolutePath());
|
|
dir.delete();
|
|
}
|
|
}
|
|
} |