package com.msmiles.fileutil;
import java.io.File;
public
class RenameFile {
public static void main(String[] args) throws Exception {
// 文件路径
String filePath = "D:\\temp";
// 新文件前缀
String prefix = "";
// 分隔符
String separator = "_";
// 阀值,序号起点
int step = 0;
// 重命名
renameFile(filePath, prefix, separator, step, true);
}
/***
* 文件批量重命名
*
* @param filePath
* 文件目录
* @param prefix
* 新文件前缀
* @param separator
* 分隔符
* @param step
* 阀值,序号起点
* @param useSerialNum
* 是否使用序号。true-使用;false-不使用
*/
public static void renameFile(String filePath, String prefix,
String separator, int step, boolean useSerialNum) {
// 文件后缀
String suffix = null;
//
文件名
String name = null;
// 文件的绝对路径
String path = null;
File fin = new File(filePath);
if (!fin.isDirectory()) {
System.out.println("你输入的不是一个目录!");
}
//
获取文件列表
File[] subF = fin.listFiles();
for (int i = 0; i < subF.length; i++) {
if (subF[i].isFile()) {
// System.out.println(subF[i].getName() + " " +
// subF[i].length()); // 列出目录下所以文件
// 获取文件名(包括扩展名)
name = subF[i].getName();
String[] block = name.split("\\.");// 根据.分割符进行分割,这样获取的的是扩展名
suffix = block[block.length - 1]; // 得到扩展名
if (null != separator) {// 如果分隔符不为null,对文件名进行分割,获取最后部分
suffix = "";
block = name.split(separator);
// suffix = block[0]; // 得到新文件的文件名
suffix += block[block.length - 1]; // 得到新文件的文件名
}
// 获取文件绝对路径
path = fin.getAbsolutePath();
String[] block2 = path.split("\\\\");
String realPath = block2[0];
for (int j = 1; j < block2.length; j++) {
System.out.println(block2[j]);
realPath = realPath + "\\\\" + block2[j]; // 得到绝对路径字符串,对\进行了处理
}
int k = i + 1 + step;
File reFile = null;
if (useSerialNum) {
reFile = new File(realPath + "\\\\" + prefix + k + "_"
+ suffix);
} else {
reFile = new File(realPath + "\\\\" + prefix + suffix);
}
subF[i].renameTo(reFile); // 重命名执行进行时
}
}
}
}
- RenameFile.rar (1.1 KB)
- 下载次数: 0