Files
moliparty-android/DeleteEmptyFolders.java
2025-07-07 10:26:00 +08:00

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();
}
}
}