本帖最后由 TristenC 于 2023-5-1 21:25 编辑
网盘上下的一些资源,动不动就每个文件都缀个“更多资源尽在xxx资源网”,强迫症简直不能忍!
所以写了段简单代码来帮我治强迫症,不过还是觉得代码不够完善(功能够了,设计不满意)
我想把输出语句内聚到递归方法内部且在方法彻底结束时才执行一次用于输出一个总的统计结果、而不是在外部调用输出语句,但是尝试了几种思路把输出语句放到递归方法内时都是每处理一个文件就会执行一次输出当前结果,谁能帮忙给点提示
[Java] 纯文本查看 复制代码 public class FileUtil {
public static void main(String[] args) {
File dir = new File("D:\\新建文件夹");//绝对路径
int count = renameFile(dir, "【我是广告语】");
System.out.println("文件名去广告成功,共处理 " + count + " 个文件");
}
/**
* 重命名指定目录及其子目录下文件的文件名(去除文件名中相同的广告语)
*/
public static int renameFile(File dir, String adStr) {
if (!dir.exists() || dir.isFile()) {
throw new RuntimeException("目录不存在或不是目录");
}
int count = 0;
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
count += renameFile(file, adStr);
} else {
String fileName = file.getName();
if (fileName.contains(adStr)) {
String newFileName = fileName.replace(adStr, "");
String parentDir = file.getParent();
String newDest = parentDir + File.separator + newFileName;
file.renameTo(new File(newDest));
count++;
}
}
}
return count;
}
} |