Java 批量修改 Windows 中文件名

package cn.com.files;


import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/**
 * @author YangXB
 * @version 1.0v
 * @Createtime 2018年6月17日 上午11:11:34
 * @description 
 */
public class RenameFiles {
public static void printFileDir(File file){
if(file.exists()){
if(file.isFile()){
String name = file.getName();
String rename = dealFileName(name);
// System.out.println(file.getAbsolutePath());
// System.out.println("E:\\BaiduNetdiskDownload\\idea\\IntelliJ IDEA视频mp4格式版本(建议)\\"+rename);
boolean bool = file.renameTo(new File("E:/BaiduNetdiskDownload/idea/IntelliJ IDEA视频mp4格式版本(建议)\\"+rename));
System.out.println(bool+" -- "+ name);
}else{
File[] fs = file.listFiles();//目录下的文件列表数组
if(fs != null){//有可能是系统限制访问的目录
for(File ff : fs){
if(ff != null){//如果子file 从在就递归。
printFileDir(ff);
}
}
}
}
}else{
System.out.println("文件不从在");
}
}
public static String dealFileName(String name){
String nn = "";
String[] s = name.split(":");
String s1 = s[0];
String s2 = s[1];

   // 按指定模式在字符串查找
     String line = s1;
     String pattern = "[0-9]+";
 
     // 创建 Pattern 对象
     Pattern r = Pattern.compile(pattern);
 
     // 现在创建 matcher 对象
     Matcher m = r.matcher(line);
     int i = 0;
     if (m.find( )) {
//         System.out.println("Found value: " + m.group(i) +"_"+s2);
        nn = m.group(i) +"_"+s2;
        i++;
     } else {
        System.out.println("NO MATCH");
        i++;
     }
// System.out.println(s1+","+s2);
return nn;
}
public static void main(String[] args) {
File file = new File("E:/BaiduNetdiskDownload/idea/IntelliJ IDEA视频mp4格式版本(建议)");
printFileDir(file);
}

}



猜你喜欢

转载自blog.csdn.net/chuan_zhang_ak/article/details/80717864