1. 程式人生 > >《java---批量修改檔名---io》

《java---批量修改檔名---io》

拿到一些檔案後文件名就只是編號,還好一個txt說明

哎,誰讓咱們是程式設計師呢,編個小程式改一下就是老

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;


public class ChengeFileName {
	
	/**
	 *  Title:利用io流實現檔案批量修改命名
	 *  Copyright: Copyright (c) 2012
	 *  @author: 烽火
	 *  @version 1.0 2012-09-24
	 *  @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		
		//得到存有檔名的檔案的流物件
		FileReader fr = new FileReader("F:\\ProgramView\\java\\JDBC\\a.txt");
		BufferedReader bfr = new BufferedReader(fr);
		
		StringBuffer sb = new StringBuffer();
		
		//逐行讀取檔案中的字串
		String fname = null;
		while((fname=bfr.readLine()) != null){
			sb.append(fname.trim()+",");
			//System.out.println(fname);
		}
		String sbname = sb.toString();
		//得到存有檔名的陣列
		String[] nfnames = sbname.split(",");
		
		/*for (int i = 0; i < nfnames.length; i++){
			System.out.println(nfnames[i]);
		}*/
		
		//得到存有待修改檔案的資料夾物件
		File file = new File("F:\\ProgramView\\java\\JDBC\\view");
		
		String[] fnames = null;
		if (!file.isFile() && file.isDirectory()){
			
			//得到待修改檔名
			fnames = file.list();
			
			/*for (int i = 0; i < fnames.length; i++){
				System.out.println(fnames[i].substring(0, fnames[i].lastIndexOf(".")));
			}*/
			
		}else{
			System.out.println("非檔案!");
		}
		
		for (int i = 0; i < fnames.length; i++){
			int index = Integer.parseInt(fnames[i].substring(0, fnames[i].lastIndexOf(".")))-1;
			//得到一個待命名檔案物件
			File oldf = new File("F:\\ProgramView\\java\\JDBC\\view\\"+fnames[i]);
			//獲取新名稱檔案的檔案物件
			File newf = new File("F:\\ProgramView\\java\\JDBC\\view\\"+nfnames[index]+".avi");
			
			//進行重新命名
			oldf.renameTo(newf);
		}
		System.out.println("重新命名完成!");
	}
}

註釋部分的程式碼只是用來測試;

提示:如你想用此方法修改檔名,最好先將檔案備份。否則出錯就麻煩了!