import java.io.File; import java.util.HashSet; import java.util.Set; public class DeleteEmptyFolders { // 白名单路径集合 private static final Set 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(); } } }