下了很多学习视频,每个视频都被加上了一些相同或有规律的前缀或后缀,轻微强迫症受不了手动改了几个觉得效率太慢,懒惰使人进步,于是就写了个批量简化文件程序。
删除相同字样的程序采用了String类的replace方法,删除有规律的字样的程序采用了String类的replaceFirst方法,具体如下:
(1)删除相同字样,此处进行了2次简化,一是删除:马士兵_HTML & CSS & JAVASCRIPT - ,二是删除:Av******,p (操作与上个步骤相同,故未贴出。增加此步骤的原因在于可简化(2)部分的正则表达式)
import java.io.File;
//注:此程序仅用作批量简化文件名称(删除繁杂多余的相同字样),而不用作批量重命名
public class RenameToFile2 {
//文件所在路径filesName,文件中相同的字样sameStr
static String filesName = "D:\\马士兵--Java\\05第五部分HTML&CSS&JAVASCRIPT";
static String sameStr = "马士兵_HTML & CSS & JAVASCRIPT - ";
public static void main(String[] args) {
File f = new File(filesName);
File[] files = f.listFiles();
for(File child:files) {
rename(child);
}
}
private static void rename(File child) {
//文件名oldFileName,重命名newFileName
String oldFileName = child.getName();
String newFileName = oldFileName.replace(sameStr, "");
child.renameTo(new File(filesName + "\\" + newFileName));
}
}
(2)删除有规律的字样
import java.io.File;
//注:此程序仅用作批量简化文件名称(删除繁杂多余的不同字样),而不用作批量重命名
public class RenameToFile3 {
//文件所在路径filesName,不同字样的正则表达式regex
static String filesName = "D:\\马士兵--Java\\05第五部分HTML&CSS&JAVASCRIPT";
static String regex = "^\\d{1,2}\\.";
public static void main(String[] args) {
File f = new File(filesName);
File[] files = f.listFiles();
for(File child:files) {
rename(child);
}
}
private static void rename(File child) {
//文件名oldFileName,重命名newFileName
String oldFileName = child.getName();
String newFileName = oldFileName.replaceFirst(regex, "");
child.renameTo(new File(filesName + "\\" + newFileName));
}
}
修改前
修改后