JAVA批量修改文件名
一、文件结构
二、代码
import java.io.File; import java.util.Date; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Rename { public static void main(String args[]) { System.out.println("---本程序会根据输入的文件路径和文件名称修改为jpg格式的图片,所有文件都会修改成jpg后缀,请慎用!---"); System.out.println("请输入文件路径(以‘D:\\UML\\94\\20190131’的形式,回车确认):\n"); Scanner scan = new Scanner(System.in); String path = scan.next(); System.out.println("输入的路径为:"+path+"\n"); System.out.println("请输入输出的文件头的名称的主要部分(如:0619),回车确认\n文件名输出形式为0619+(该目录下子文件夹名称-)+(编号.jpg):"); Scanner scan1 = new Scanner(System.in); String mainName = scan1.next(); Date date = new Date(); //File f2=new File("D://UML//94"); //这里写上发替换的文件夹路径,注意使用双斜杠 path.replaceAll("//", "\\"); File f2=new File(path); String[] files1=f2.list(); String filename1 = ""; File f1=null; int n=0; int count1 = 0; int count2 = 0; for(String file1 : files1 ) { count1++; f1=new File(f2,file1);//注意,这里一定要写成File(fl,file)如果写成File(file)是行不通的,一定要全路径 filename1 = f1.getName(); //System.out.println(filename1); File fl=new File(path+"//"+filename1); //这里写上发替换的文件夹路径,注意使用双斜杠 String[] files=fl.list(); File f=null; String filename=""; int i = 1; String num = ""; String str = ""; Pattern p = Pattern.compile("\\d+"); Matcher m = p.matcher(filename1); String s = ""; if(m.find()){ filename1=m.group(0); } if(filename1.length()==1){ str = "00"+filename1; }else if(filename1.length()==2){ str = "0"+filename1; }else{ str = filename1; } for(String file:files) { num = i<10?"0"+i:i+""; f=new File(fl,file);//注意,这里一定要写成File(fl,file)如果写成File(file)是行不通的,一定要全路径 filename=f.getName(); //f.renameTo(new File(fl.getAbsolutePath()+"//"+filename.replace("---", "-")));//这里可以反复使用replace替换,当然也可以使用正则表达式来替换了 if(mainName.equals("0")){ mainName=""; } String newFilename = mainName+str+"-"+num+".jpg"; f.renameTo(new File(fl.getAbsolutePath()+"//"+mainName+str+"-"+num+".jpg")); System.out.println("第"+count1+"个子文件夹"+":"+filename +" To "+newFilename); i++; count2++; } } Date date1 = new Date(); System.out.println("总共修改"+count1+"个子文件夹下"+count2+"个文件名。耗时:"+(date1.getTime()-date.getTime())+"ms"); } }
三、修改前
四、修改后
本文来自博客园,作者:迷神图卷,转载请注明原文链接:https://www.cnblogs.com/CryOnMyShoulder/p/7707407.html