批量修改檔名稱案例
package cn.itcast_09;
import java.io.File;
/* * 需求:把E:\評書\三國演義下面的視訊名稱修改為 * 00?_介紹.avi * * 思路: * A:封裝目錄 * B:獲取該目錄下所有的檔案的File陣列 * C:遍歷該File陣列,得到每一個File物件 * D:拼接一個新的名稱,然後重新命名即可。 */ public class FileDemo { public static void main(String[] args) { // 封裝目錄 File srcFolder = new File(“E:\評書\三國演義”);
// 獲取該目錄下所有的檔案的File陣列 File[] fileArray = srcFolder.listFiles();
// 遍歷該File陣列,得到每一個File物件 for (File file : fileArray) { // System.out.println(file); // E:\評書\三國演義\三國演義001[評書網-今天很高興,明天就IO了]_桃園三結義.avi // 改後:E:\評書\三國演義\001_桃園三結義.avi String name = file.getName(); // 三國演義001[評書網-今天很高興,明天就IO了]_桃園三結義.avi
int index = name.indexOf(“_”);//找到第一個下劃線的索引 String numberString = name.substring(index + 1, index + 4);//拿到00?包左不包右 // System.out.println(numberString);
// int startIndex = name.lastIndexOf(‘_’); // int endIndex = name.lastIndexOf(‘.’); // String nameString = name.substring(startIndex + 1, endIndex);//得到桃園三結義 // System.out.println(nameString); int endIndex = name.lastIndexOf(‘_’); String nameString = name.substring(endIndex);
String newName = numberString.concat(nameString); // 001_桃園三結義.avi // System.out.println(newName);
File newFile = new File(srcFolder, newName); // E:\評書\三國演義\001_桃園三結義.avi //根據一個父File物件和一個子檔案/目錄得到File物件 // 重新命名即可 file.renameTo(newFile); } } }