feat : first
This commit is contained in:
64
DeleteEmptyFolders.java
Normal file
64
DeleteEmptyFolders.java
Normal file
@@ -0,0 +1,64 @@
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user