笔记 (批量重命名)
package com.czy.store.controller.index;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class CopeFileTest {
public static void main(String[] args) {
/*File file = new File("D:\\PDF拆分\\322社会学-2004.pdf");
if (!file.isFile()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//调用renameTo()前
System.out.println(file.exists());
file.renameTo(new File("D:\\PDF拆分\\322社会学.pdf"));
//调用renameTo()后
System.out.println(file.exists());*/
getAllFileName("D:\\PDF拆分");
}
/**
* 获取某个文件夹下的所有文件
*
* @param path 文件夹的路径
* @return
*/
public static void getAllFileName(String path) {
boolean flag = false;
File file = new File(path);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
System.out.println("转换前:" + String.valueOf(tempList[i]));
/*去掉后缀,得到完整文件名*/
String fileName = tempList[i].getName().replace(".pdf","");
String year = "2016";
/*得到需要替换的路径*/
File file1 = new File(String.valueOf(tempList[i]));
/*转换,会删除原先文件*/
file1.renameTo(new File(path+"\\"+fileName+year+".pdf"));
}
}
return;
}
}
运行前
运行后
升级版 如果是文件夹进入文件夹转换
package com.czy.store.controller.index;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class CopeFileTest {
public static void main(String[] args) {
/*File file = new File("D:\\PDF拆分\\322社会学-2004.pdf");
if (!file.isFile()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//调用renameTo()前
System.out.println(file.exists());
file.renameTo(new File("D:\\PDF拆分\\322社会学.pdf"));
//调用renameTo()后
System.out.println(file.exists());*/
getAllFileName("D:\\PDF拆分\\(处理完毕 明天处理中...)长沙理工大学(2015-2019初试+复试)");
}
/**
* 获取某个文件夹下的所有文件
*
* @param path 文件夹的路径
* @return
*/
/*
// 去掉多个字符串
String src = "南京市玄武区北京东路徐州市鼓楼区戏马台";
src = src.replaceAll("(?:江苏省|玄武区|鼓楼区)", "");
System.out.println(src);*/
public static void getAllFileName(String path) {
File file = new File(path);
// 如果这个路径是文件夹
if (file.isDirectory()) {
// 获取路径下的所有文件
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
// 如果还是文件夹 递归获取里面的文件 文件夹
if (files[i].isDirectory()) {
// System.out.println("目录:" + files[i].getPath());
getAllFileName(files[i].getPath());
} else {
/* 保存pdf文件的路径 */
String pdfPath = files[i].getParent();
/* 保存pdf文件的名字 */
String pdfName = files[i].getName();
/* 去掉pdf中的年份和后缀 */
/* 我这里为什么写重复的年份呢,因为中英文括号 */
String processingPDF = pdfName.replaceAll("(?:2011年硕士|(2015年)|(2016年)|(2017年)|(2018年)|(2019年)|(2015年)|(2016年)|(2017年)|(2018年)|(2019年)|-|入学试卷.pdf)","");
/* 开始转换 路径和文件拼接,得到完 成的文件绝对路径,旧文件*/
String absPDF = pdfPath+"\\"+pdfName;
/* 得到需要替换的文佳路径 */
File file1 = new File(absPDF);
/* 开始重命名 设置年份*/
String year = "-2011";
/* 防止()去不掉再去除一下 */
String processingPDF2 = processingPDF.replace("()","");
file1.renameTo(new File(pdfPath +"\\"+ processingPDF2+year+".pdf"));
System.out.println("转换前文件:" + pdfName);
System.out.println("转换前文件:" + processingPDF2+year+".pdf");
System.out.println();
// System.out.println("转换后文件绝对路径:" + pdfPath +"\\"+ processingPDF+year+".pdf");
}
}
} else {
System.out.println("文件22222:" + file.getPath());
}
/* 不判断文件夹 简易版 */
/*File file = new File(path);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
System.out.println("转换前:" + tempList[i]);
*//*去掉后缀,得到完整文件名*//*
*//* String fileName = tempList[i].getName().replace(".pdf","");
String year = "2019";
*//**//*得到需要替换的路径*//**//*
File file1 = new File(String.valueOf(tempList[i]));
*//**//*转换,会删除原先文件*//**//*
file1.renameTo(new File(path+"\\"+fileName+"-"+year+".pdf"));*//*
}
}*/
return;
}
}
没错我又来了,在升级一下,代码有重复,没有优化。大佬请来小黑屋谈话
package com.czy.store.controller.index;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class CopeFileTest {
public static void main(String[] args) {
/*File file = new File("D:\\PDF拆分\\322社会学-2004.pdf");
if (!file.isFile()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//调用renameTo()前
System.out.println(file.exists());
file.renameTo(new File("D:\\PDF拆分\\322社会学.pdf"));
//调用renameTo()后
System.out.println(file.exists());*/
getAllFileName("D:\\PDF拆分\\(处理完毕 明天处理中...)长沙理工大学(2015-2019初试+复试)");
}
/**
* 获取某个文件夹下的所有文件
*
* @param path 文件夹的路径
* @return
*/
/*
// 去掉多个字符串
String src = "南京市玄武区北京东路徐州市鼓楼区戏马台";
src = src.replaceAll("(?:江苏省|玄武区|鼓楼区)", "");
System.out.println(src);*/
public static void getAllFileName(String path) {
File file = new File(path);
// 如果这个路径是文件夹
if (file.isDirectory()) {
// 获取路径下的所有文件
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
// 如果还是文件夹 递归获取里面的文件 文件夹
if (files[i].isDirectory()) {
// System.out.println("目录:" + files[i].getPath());
getAllFileName(files[i].getPath());
} else {
/* 保存pdf文件的路径 */
String pdfPath = files[i].getParent();
/* 保存pdf文件的名字 */
String pdfName = files[i].getName();
/* 获取文件的后缀 */
String suffixName = pdfName.substring(pdfName.lastIndexOf(".")+1);
/* 如果文件是pdf则重命名pdf的格式 */
/* 去掉pdf中的年份和后缀 */
/* 我这里为什么写重复的年份呢,因为中英文括号 */
/* 开始转换 路径和文件拼接,得到完 成的文件绝对路径,旧文件*/
String absPDF = pdfPath+"\\"+pdfName;
/* 得到需要替换的文佳路径 */
File file1 = new File(absPDF);
/* 开始重命名 设置年份*/
String year = "-2020";
/* 如果文件是pdf */
if(suffixName.equals("pdf")){
String processingPDF = pdfName.replaceAll("(?:初试科目|(2016年)|(2017年)|(2018年)|(2019年)|(2015年)|(2016年)|(2017年)|(2018年)|(2019年)|-|_| |.pdf)","");
/* 防止()去不掉再去除一下 */
String processingPDF2 = processingPDF.replace("2020","");
file1.renameTo(new File(pdfPath +"\\"+ processingPDF2+year+".pdf"));
System.out.println("转换前文件:" + pdfName);
System.out.println("转换前文件:" + processingPDF2+year+".pdf");
System.out.println();
}else if(suffixName.equals("docx") || suffixName.equals("doc")){
/* 如果文件是word */
String processingPDF = pdfName.replaceAll("(?:初试科目|(2016年)|(2017年)|(2018年)|(2019年)|(2015年)|(2016年)|(2017年)|(2018年)|(2019年)|-|_| |.docx|.doc)","");
/* 防止()去不掉再去除一下 */
String processingPDF2 = processingPDF.replace("2020","");
file1.renameTo(new File(pdfPath +"\\"+ processingPDF2+year+".doc"));
System.out.println("转换前文件:" + pdfName);
System.out.println("转换前文件:" + processingPDF2+year+".doc");
System.out.println();
}
// System.out.println("转换后文件绝对路径:" + pdfPath +"\\"+ processingPDF+year+".pdf");
}
}
} else {
System.out.println("文件22222:" + file.getPath());
}
/* 不判断文件夹 简易版 */
/*File file = new File(path);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
System.out.println("转换前:" + tempList[i]);
*//*去掉后缀,得到完整文件名*//*
*//* String fileName = tempList[i].getName().replace(".pdf","");
String year = "2019";
*//**//*得到需要替换的路径*//**//*
File file1 = new File(String.valueOf(tempList[i]));
*//**//*转换,会删除原先文件*//**//*
file1.renameTo(new File(path+"\\"+fileName+"-"+year+".pdf"));*//*
}
}*/
return;
}
}