diff --git a/src/main/java/cn/com/tenlion/operator/util/WaveFileCleaner.java b/src/main/java/cn/com/tenlion/operator/util/WaveFileCleaner.java new file mode 100644 index 0000000..88db702 --- /dev/null +++ b/src/main/java/cn/com/tenlion/operator/util/WaveFileCleaner.java @@ -0,0 +1,49 @@ +package cn.com.tenlion.operator.util; + +import java.io.File; +import java.util.regex.Pattern; + +public class WaveFileCleaner { + + public static void main(String[] args) { + String basePath = "D:/UP20230404/Server/apache-tomcat-8-8083/webapps/baotou/uploadFiles/"; + String startDir = "20221231"; + String endDir = "20181102"; // 已修改为2018年 + + String minDir = startDir.compareTo(endDir) < 0 ? startDir : endDir; + String maxDir = startDir.compareTo(endDir) < 0 ? endDir : startDir; + System.out.println("开始日期" + minDir); + System.out.println("结束日期" + maxDir); + Pattern fileNamePattern = Pattern.compile("^\\d{14}\\w{3}\\.wav$"); + File root = new File(basePath); + if (root.exists() && root.isDirectory()) { + processDirectories(root, minDir, maxDir, fileNamePattern); + } + } + + private static void processDirectories(File root, String minDir, String maxDir, Pattern pattern) { + File[] dirs = root.listFiles(File::isDirectory); + if (dirs == null) return; + + for (File dir : dirs) { + String dirName = dir.getName(); + if (dirName.compareTo(minDir) >= 0 && dirName.compareTo(maxDir) <= 0) { + System.out.println("正在访问文件夹" + dirName); + cleanWaveFiles(dir, pattern); + } + } + } + + private static void cleanWaveFiles(File directory, Pattern pattern) { + File[] files = directory.listFiles(); + if (files == null) return; + + for (File file : files) { + System.out.println("正在访问文件" + file.getName()); + if (file.isFile() && pattern.matcher(file.getName()).matches()) { + boolean deleted = file.delete(); + System.out.println((deleted ? "已删除:" : "删除失败:") + file.getAbsolutePath()); + } + } + } +} \ No newline at end of file