首页 > 代码库 > JAVA批量修改文件名

JAVA批量修改文件名

  今天看传智播客的JAVA视频,每次都是接着以前的看的,今天想找特定的一个视频温习一下,发现下载的视频每个视频的名字都很长,以至于后面能区分的那一部分都被忽略了,刚学了点JAVA,突然想着能不能把文件名前面相同的部分都给去掉,这样后面关于视频所讲内容的那一部分就可以显示出来了。好吧,试一下吧。

  想了一下思路,首先应该找到要修改的文件所在的目录,获取要修改文件的文件名,然后得到删除不要的那一部分的文件名,给文件重命名完毕。

  鉴于初学,很多地方还不是很懂,于是从网上了查了一段代码。

  

import java.io.File;
import java.io.IOException;

/**
* 假设文件名为"C123_the title of article.pdf",我们要把这类文件批量更改为
* "the title of article.pdf"的形式。


*/
public class FileRename {
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));//耗时
   }
}
}

  修改一下文件的目录路径,然后就是需要把文件名要删除的部分修改一下,然后又看了一下indexOf的使用方法,用来返回字符串对象内第一次出现子字符串的字符位置。 。比如我要把“第”前面的文件名部分删掉,就要把函数中的参数改为“第”,起始位置就从开始部分开始。然后就用到了substring函数,这是用来截取字符串的一个方法。substring(int beginindex,int endindex)表示截取从指定的beginindex处开始到endindex-1处结束的字符串。

  修改完以后,运行,文件名修改完毕。有点小激动,哈哈。

  不过···又有了一个小问题。这样只修改了一个文件夹下的文件名,好像需要加个循环,要修改的文件夹有点多。

  ···

  ···

  ok,加个循环,全部修改完毕。吃饭去···