diff --git "a/\345\256\236\347\224\250\345\260\217\345\267\245\345\205\267/FileRenameUtil.java" "b/\345\256\236\347\224\250\345\260\217\345\267\245\345\205\267/FileRenameUtil.java" new file mode 100644 index 0000000000000000000000000000000000000000..29c31580494919f3041aacd324ed56ecb4a630ff --- /dev/null +++ "b/\345\256\236\347\224\250\345\260\217\345\267\245\345\205\267/FileRenameUtil.java" @@ -0,0 +1,42 @@ +package org.wcan.file; + +import org.junit.Test; +import java.io.File; +import java.util.Optional; + +/** + * @ClassName FileRenameUtils + * @Description 批量修改文件夹下的文件名 + * 在某些论坛上找资料的时候,很多 markdown 文档的图片是保存在当前路径下的,但是无良的论坛会把自己的域名拼接到文件名后面,导致文档无法加载图片,这个工具类可以完美去掉文件名后面的域名 + * @Author skr_coder + * @Date 2024/1/24 下午 17:16 + * @Version 1.0 + */ +public class FileRenameUtils { + + @Test + public void testRenameStupidForumFileName() { + FileRenameUtils.renameStupidForumFileName(new File("your file path ")," xxxx.com", ""); + } + + /** + * + * @param file 目录的抽象 + * @param stupidForum 待替换的值 + * @param replaceValue 替换的值 + */ + public static void renameStupidForumFileName(File file, String stupidForum, String replaceValue) { + File[] files = file.listFiles(); + for (File subdirectory : Optional.ofNullable(files).orElse(new File[]{})) { + if (subdirectory.isDirectory() && subdirectory.listFiles().length > 0) { + renameStupidForumFileName(subdirectory, stupidForum, replaceValue); + } else { + String fileName = subdirectory.getName(); + if(fileName.contains(stupidForum)){ + String newName = subdirectory.getParent() + File.separator + fileName.replace(stupidForum, replaceValue); + subdirectory.renameTo(new File(newName)); + } + } + } + } +}