最近在整理文件夹里面的照片,想到一个批量重命名的问题。本来想找个好用的工具,可以对我的文件批量重命名,找了好久,下载一两个,都是上当受骗。于是自己写了一个简单的main函数,直接通过HelloWorld的方式给我文件夹所有文件进行重命名了。
简单的代码,请大家佐证。学习交流。
包含递归。
/**
*
* @param fileDir
* @param sequenceCode
*/
public static void fileRename(File fileDir, String sequenceCode) {
File[] files = fileDir.listFiles();
for (int k = 0; k < files.length; k++) {
StringBuffer sb = new StringBuffer(sequenceCode);
if (files[k].isDirectory()) {
fileRename(files[k], sequenceCode);
} else {
if (k < 10)
sb.append("_000").append(k);
else if (k >= 10 && k < 100)
sb.append("_00").append(k);
else if (k < 1000 && k >= 100)
sb.append("_0").append(k);
else
sb.append("_").append(k);
final int index = files[k].getName().lastIndexOf(".")+1;
final String fileType = files[k].getName().substring(index);
sb.append(".").append(fileType);
final String name = sb.toString();
final File dirFile = new File(fileDir, name);
System.out.println("Rename File :"+files[k].getAbsolutePath());
files[k].renameTo(dirFile);
}
}
}
同事建议判断逻辑取消:
sb.append(10000+k);