昨天,师兄想将原来下载的几百篇文献导入到NoteExpress中,并使用“自动更新”功能更新题录,但是发现一个严重的问题,就是师兄以前下文章时都是自己在下载时手动文章题目添加某些标识,用来分类。这样在“自动更新”时就查不到文章了,所以要把那些标识全去掉,几百篇文章如果手动的话,麻烦啊!!!
有没有批量修改工具?不知道。但是想了下,JAVA也不是白学的,自己编个小程序就能搞定了。
首先介绍下原来文件名:***_真实名,即在真实名前加了***_,这里***代表多个汉语或英语字符。我只要查找到_的位置,就能把包括_在内的它之前的字符都去掉。
代码如下:
import java.io.File; import java.io.IOException; /** * 假设文件名为"C123_the title of article.pdf",我们要把这类文件批量更改为 * "the title of article.pdf"的形式。 * * @author huzhyi21 {huzhyi21@163.com} * */ public class FileRename2 { public static void main(String[] args) throws IOException { java.io.File file = new java.io.File("G:/Test"); String dirPath = file.getAbsolutePath();//目录路径 if (file.isDirectory()) { File[] files = file.listFiles();//获取此目录下的文件列表 long starttime = System.currentTimeMillis(); for (File fileFrom : files) { String fromFile = fileFrom.getName();//文件名 String toFileName; int index; index = fromFile.indexOf("_"); fromFile = fromFile.substring(index + 1);//截取_后面的String if (index != -1)//防止有的文件名没有_ { toFileName = dirPath + "//" + fromFile; File toFile = new File(toFileName); if (fileFrom.exists() && !toFile.exists()) { //开始更名 fileFrom.renameTo(toFile); } } } long endtime = System.currentTimeMillis(); System.out.println("Time:" + new Long(endtime - starttime));//耗时 } } }
以上实现很简单,也很简陋,当然可以使用类似的方法实现其他功能,如更改文件格式,去掉中间含有的某些字符串等等。