批量文件重命名java工具类
程序员文章站
2022-04-17 14:04:48
...
编写java工具类,支持根据编号批量修改指定目录下文件及文件夹名称。例如:编号为10001、30541……根据编码与姓名匹配表批量修改文件名为张三、李四……。减少手工操作繁琐操作。
demo下载地址
package com.zp.myjavademo.filecollection;
import com.alibaba.fastjson.JSON;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
/**
* author : zp
* e-mail : zhangping1
* time : 2019-08-29 13:17
* desc :遍历文件目录,根据原文件名的客户号匹配json中客户姓名进行重命名
* version: 1.0
*/
public class FileUtils {
private static String jsonStr;
private static FileNameBean bean = new FileNameBean();
private static String jsonPathDir = "/Users/theappleofna/workspace/android_demo/MyTestCollection/MyJavaDemo/src/main/java/com/zp/myjavademo/filecollection/filename.json";
private static String filePathDir = "/Users/theappleofna/workspace/test/files/";
public static void main(String[] args) throws IOException {
// 从目录读取json文件
jsonStr = readJsonData(jsonPathDir);
// System.out.println("得到当前路径json===" + jsonStr);
// 解析。将匹配关系解析道json实体类
bean = JSON.parseObject(jsonStr, FileNameBean.class);
// 遍历得到所有文件数组
File file = new File(filePathDir);
String[] fileNameList = file.list();
System.out.println("读取文件列表---" + Arrays.toString(fileNameList));
// 进性重命名
renameFile(fileNameList);
}
/**
* 遍历文件目录,根据原文件名的客户号匹配json中客户姓名进性重命名
*
* @param fileName
* @author zhangping
*/
private static void renameFile(String[] fileName) {
for (int i = 0; i < fileName.length; i++) {
System.out.println("源文件名==" + fileName[i]);
for (int n = 0; n < bean.getData().size(); n++) {
if (bean.getData().get(n).getUSERSEQ().equals(fileName[i])) {
System.out.println("该客户索引==" + n);
File oldFileName = new File(filePathDir + fileName[i]);
File newFileName = new File(filePathDir + bean.getData().get(n).getCIFNAME() + "影像资料");
System.out.println("oldName===" + oldFileName + "\n newFileName==" + newFileName);
if (oldFileName.renameTo(newFileName)) {
System.out.println("重命名成功~~");
} else {
System.out.println("重命名失败!!!");
}
}
}
}
}
public static String readJsonData(String pactFile) throws IOException {
StringBuffer strbuffer = new StringBuffer();
File myFile = new File(pactFile);// "D:"+File.separatorChar+"DStores.json"
if (!myFile.exists()) {
System.err.println("Can't Find " + pactFile);
}
try {
FileInputStream fis = new FileInputStream(pactFile);
InputStreamReader inputStreamReader = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(inputStreamReader);
String str;
while ((str = in.readLine()) != null) {
strbuffer.append(str); // new String(str,"UTF-8")
}
in.close();
} catch (IOException e) {
e.getStackTrace();
}
// System.out.println("读取文件结束util");
return strbuffer.toString();
}
}
上一篇: jsp 解决ajax乱码的问题
下一篇: 文件名的批量修改----python