今天心血來潮,想做個檔案名稱字批量工具,就臨時寫了一個,支援批量尾碼名修改,和檔案名稱的數字格式化。
import java.io.File;public class AlterNameUtil { // 批量修改檔案名稱工具 public AlterNameUtil() { } /* 修改尾碼名 */ public static int index = 1; public static void alterNameExt(String filePath, String sext, String dext) { int last; File temp; File f = new File(filePath); if (!f.exists()) { System.out.println("您輸入的路徑檔案或檔案夾不存在!"); return; } else { if (f.isFile()) { if (f.getName().lastIndexOf(sext) > 0) { System.out.print(f.getName() + "找到! "); String Diretory = filePath.substring(0, filePath .lastIndexOf("/") + 1); last = f.getName().lastIndexOf("."); temp = new File(Diretory + f.getName().substring(0, last) + dext); if (f.renameTo(temp)) { System.out.println(temp.getName() + "修改成功"); } else { System.out.println("修改失敗!"); } } } else if (f.isDirectory()) { // Diretory=filePath.substring(0,filePath.lastIndexOf("/")); String[] Filenames = f.list(); for (int i = 0; i < Filenames.length; i++) { alterNameExt(filePath + "/" + Filenames[i], sext, dext); } } } } // 格式檔案名稱 數字格式化 public static void alterName(String filePath, String format, String sext) { int last; File temp; File f = new File(filePath); if (!f.exists()) { System.out.println("您輸入的路徑檔案或檔案夾不存在!"); return; } else { if (f.isFile()) { if (f.getName().indexOf(sext) > 0) { System.out.print(f.getName() + "找到! "); String Diretory = filePath.substring(0, filePath .lastIndexOf("/") + 1); last = f.getName().lastIndexOf("."); temp = new File(Diretory + format + "_" + (++index) + sext); if (f.renameTo(temp)) { System.out.println(temp.getName() + "修改成功"); } else { System.out.println("修改失敗!"); } } } else if (f.isDirectory()) { // Diretory=filePath.substring(0,filePath.lastIndexOf("/")); String[] Filenames = f.list(); for (int i = 0; i < Filenames.length; i++) { alterName(filePath + "/" + Filenames[i], format, sext); } } } } public static void main(String[] args) { alterNameExt("D://res/layout", ".java", ".xml"); alterName("D://res/layout", "main", ".xml"); }}