重命名方式主要有兩種方式:
1.前後綴方式命名。
reNameFolder(path,prefix,suffix,srcformat,desformat);
path批處理文件路徑
prefix|前綴添加內容
suffix後綴添加內容
srcformat是否過濾文件的文件格式,null爲不過濾
desformat是否重命名文件的文件格式,null爲保持原有格式
如原來文件名稱:D:/face/life.jpg 重命名後 D:/face/前綴內容life後綴內容.jpg
2.遞增方式命名。
reNameFolder(path,start,offset,prefix,suffix,srcformat,desformat);
path批處理文件路徑
start 開始遞增量
offset 遞增偏移量
prefix|前綴添加內容
suffix後綴添加內容
srcformat是否過濾文件的文件格式,null爲不過濾
desformat是否重命名文件的文件格式,null爲保持原有格式
如原來文件名稱:D:/face/life.jpg 重命名後 D:/face/前綴內容後綴內容1.jpg
3.更多方式重命名
可以根據提供的參數重載多種方法,如遞增時保留原有名稱,遞增時去掉原有名稱,重命名是另開目錄保存等等。
import java.io.File;
/**
* ========================================
* <p/>
* 版 權:dou361 版權所有 (C) 2015
* <p/>
* 作 者:陳冠明
* <p/>
* 個人網站:http://www.dou361.com
* <p/>
* 版 本:1.0
* <p/>
* 創建日期:2016/1/13
* <p/>
* 描 述:
* <p/>
* <p/>
* 修訂歷史:
* <p/>
* ========================================
*/
public class ReNameFolder<span style="font-family: Arial, Helvetica, sans-serif;"> {</span>
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("---------------------開始操作-------------------");
reNameFolder(new File("C:\\Users\\Administrator\\Desktop\\Face"), 0, 1, "jjdxm_", "", null, null);
System.out.println("---------------------操作完成-------------------");
}
/**
* 重命名指定文件夾下的所有文件前後綴方式
*
* @param path 路徑
* @param prefix 前綴
* @param suffix 後綴
* @param srcformat 原有格式過濾
* @param desformat 轉換格式
*/
private static void reNameFolder(File path, String prefix, String suffix, String srcformat, String desformat) {
reNameFolder(path, -1, -1, true, prefix, suffix, srcformat, desformat);
}
/**
* 重命名指定文件夾下的所有文件遞增方式
*
* @param path 路徑
* @param start 開始位置
* @param offset 偏移量
* @param prefix 前綴
* @param suffix 後綴
* @param srcformat 原有格式過濾
* @param desformat 轉換格式
*/
private static void reNameFolder(File path, int start, int offset, String prefix, String suffix, String srcformat, String desformat) {
reNameFolder(path, start, offset, false, prefix, suffix, srcformat, desformat);
}
/**
* 重命名指定文件夾下的所有文件
*
* @param path 路徑
* @param prefix 前綴
* @param suffix 後綴
* @param start 起始位置
* @param offset 偏移量
* @param srcformat 原有格式過濾
* @param desformat 轉換格式
*/
private static void reNameFolder(File path, int start, int offset, boolean saveOldName, String prefix, String suffix, String srcformat, String desformat) {
if (!path.exists()) {
return;
}
if (prefix == null) {
prefix = "";
}
if (suffix == null) {
suffix = "";
}
/** 當前目錄 */
File[] files = path.listFiles();
for (File file : files) {
if (file.isDirectory()) {
reNameFolder(file, start, offset, saveOldName, prefix, suffix, srcformat, desformat);
} else {
/** 舊文件名稱,去後綴 */
String oldName;
/** 新文件名稱,完整路徑 */
StringBuilder newName = new StringBuilder();
/** 新文件後綴 */
String newfix;
String fileName = file.getName();
int index = fileName.lastIndexOf(".");
/**-------------舊文件名不包含後綴-------------------*/
if (index == -1) {
/** 無後綴文件 */
oldName = fileName;
} else {
/** 有後綴文件 */
oldName = fileName.substring(0, index);
}
/**-------------舊文件名不包含後綴-------------------*/
/**-------------新文件後綴-------------------*/
if (desformat == null) {
if (index == -1) {
newfix = null;
} else {
newfix = fileName.substring(index + 1);
}
} else {
newfix = desformat;
}
/**-------------新文件後綴-------------------*/
newName.append(file.getParent());
newName.append(File.separator);
newName.append(prefix);
if (saveOldName) {
newName.append(oldName);
}
newName.append(suffix);
if (start >= 0 && offset > 0) {
newName.append(start + "");
start = start + offset;
}
if (srcformat == null) {
/** 沒有加過濾,操作所有文件 */
if (newfix != null) {
newName.append(".");
newName.append(newfix);
}
File newFile = new File(newName.toString());
if (newFile.exists()) {
/** 如果重命名的文件已經存在,則不重命名 */
System.out.println("rename----oldFile----" + oldName + "----newFile----" + newFile.getName() + "----fails");
} else {
file.renameTo(newFile);
}
} else if (file.getName().endsWith("." + srcformat)) {
/** 有加過濾,操作過濾文件 */
newName.append(".");
newName.append(newfix);
File newFile = new File(newName.toString());
if (newFile.exists()) {
/** 如果重命名的文件已經存在,則不重命名 */
System.out.println("rename----oldFile----" + oldName + "----newFile----" + newFile.getName() + "----fails");
} else {
file.renameTo(newFile);
}
}
}
}
}
}