今天看传智播客的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,加个循环,全部修改完毕。吃饭去···