今天把手机里的图片通过qq发送到电脑上,发现文件多了后缀“.gif.JPG”。手动改因为图片太多了,就用java代码给文件去掉多余的后缀。
要迭代所有的文件夹下的所有文件,并判断当前文件是否存在多余后缀
public static void main(String[] args) {
//创建文件路径
// String string = "E:\\视频\\b站大佬";
String string = "E:\\图片";
//创建文件对象
File file = new File(string);
//将文件夹中的文件读取出来,放入File数组
RenameFile(file);
}
private static void RenameFile(File file) {
File[] files = file.listFiles();
for (File file1 : files) {
if (file1.isDirectory()) {
RenameFile(file1);
} else {
String fileName = file1.getName();
boolean matches = fileName.matches("^.+(\\.[a-zA-Z]+){2}$");
if (matches) {
System.out.println(fileName);
int i = fileName.lastIndexOf(".");
String newName = fileName.substring(0, i);
file1.renameTo(new File(file.getAbsolutePath() + "\\" + newName));
}
}
}
}
使用的是正则表达式来对字段进行过滤,因为正则表达式刚自学了没几天,所以使用的有些生疏
"^.+(\\.[a-zA-Z]+){2}$"
使用时我认为的难点:
“.”单独使用的时候表示除换行符之外的所有字符,加上“\”后表示字符“.”。
我没加上“\”时,把所有的文件都查出来了
{n}这个表示某个字符或子表达式有且只有几个或几次,
注意:
这个其实还是有bug的,会把其他不是图片的文件也查出来,所以还要做个判断
版权声明:本文为SimpleCow原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。