1. 程式人生 > >IO流_批量修改檔名稱案例

IO流_批量修改檔名稱案例

package cn.itcast_09;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

/*
 * 需求:把E:\評書\三國演義下面的視訊的名稱修改為
 * 		00?_介紹.avi
 * 
 * 思路:
 * 		A:封裝目錄
 * 		B:獲取該目錄下所有的檔案的File陣列
 * 		C:遍歷該File陣列,得到每一個File物件
 * 		D:並接一個新的名稱,然後重新命名即可。
 */
public class FileDemo {
	public static void main(String[] args) throws IOException {
		// 封裝目錄
		File srcFolder = new File("E:\\評書\\三國演義");

		// 獲取該目錄下所有的檔案的File陣列
		File[] fileArray = srcFolder.listFiles();

		// 遍歷該File陣列,得到每一個File物件
		for (File f : fileArray) {
			// System.out.println(f.getName());
			// E:\評書\三國演義\三國演義_001[評書網-今天很高興,明天就IO了]_桃園三結義.avi
			// 改後:E:\\評書\\三國演義\\001_桃園三結義.avi
			String name = f.getName();// 三國演義_001[評書網-今天很高興,明天就IO了]_桃園三結義.avi

			int statIndex = name.indexOf('_');
			String numberString = name.substring(statIndex + 1, statIndex
					+ statIndex);
			// System.out.println(numberString);

			// int stratIndex = name.lastIndexOf('_');
			// int endIndex = name.lastIndexOf('.');
			// String nameString = name.substring(stratIndex + 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
			System.out.println(f.renameTo(newFile));
		}
	}
}