问题描述:当我在网上进行浏览好康的ff14猫娘图片时,我发现保存下来的图片全都是.wbep格式。虽然可以正常浏览,但是发送给朋友看的时候操作不方便,于是我就想用IO的文件过滤器和文件的renameTo方法来批量修改文件名的后缀,全都变为.png格式。
代码实现:
在这里我写了两个类,一个是用来修改的,一个是实现了文件过滤器的类。
wbep文件过滤器:
package com.etime.replace;
import java.io.File;
import java.io.FilenameFilter;
public class WebpFilenameFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
File file = new File(dir,name);
boolean isFile = file.isFile();
boolean flag = name.endsWith("webp");
if (isFile && flag){
return true;
}
else{
return false;
}
}
}
主类:
package com.etime.replace;
import java.io.*;
public class ReplaceWebp {
public static void main(String[] args) {
//文件夹路径
String dirPath = "F:"+File.separator+"picture"+File.separator+"FF14";
ReplaceWebpToPng(dirPath);
}
public static void ReplaceWebpToPng(String dirPath){
File dir = new File(dirPath);
//过滤器,找出所有以webp结尾的文件
File[] files = dir.listFiles(new WebpFilenameFilter());
if (files != null){
for(File f : files){
//System.out.println("old:"+f.getName());
//获取文件名
String filename = f.getName().substring(0,f.getName().length()-5);
//System.out.println(filename);
String newFilename = filename+".png";
RenameFile(dirPath,f.getName(),newFilename);
}
}
}
public static void RenameFile(String path,String filename,String newFilename){
String oldFilename = path+File.separator+filename;
File oldFile = new File(oldFilename);
String newName = path+File.separator+newFilename;
File newFile = new File(newName);
if (oldFile.exists() && oldFile.isFile()){
oldFile.renameTo(newFile);
}
}
}
修改前:
修改后:
注:这里的修改后缀名仅仅只是强制改写,文件本身的编码并没有发生变化,这里只是因使用方便才进行后缀名的改写。