1. 程式人生 > >檔案過濾FilenameFilter

檔案過濾FilenameFilter

import java.io.File;
import java.io.FilenameFilter;
import java.util.Date;


public class FileListFilter implements FilenameFilter{
	private String name;
	private String extension;//extension 分期,範圍,延長 
	
	public FileListFilter(String name, String extension){//預設構造器
		this.name = name;
		this.extension = extension;
	}
	
	public boolean accept(File directory, String filename) {//繼承FilenameFileter的方法
		// 測試指定檔案是否應該包含在某一檔案列表中
		boolean fileOK = true;
		
		if(name != null ){
			fileOK = filename.startsWith(name);//測試此字串是否以指定的字首開始。
		}
		
		if(extension != null){
			fileOK = filename.endsWith("." + extension);
		}
		
		return fileOK;
	}
	
	public static void main(String[] args) {
		File myDir = new File("C:/3D片源");//建立路徑  注意這裡的路徑與windows相反
		FilenameFilter select = new FileListFilter("狗","avi");//以F開頭,txt結尾的檔案
		File[] contents = myDir.listFiles(select);//contents意思為目錄,構造一個File陣列contents
							//C:/ 把select過濾器給listFiles()方法
		/**public File[] listFiles(FilenameFilter filter)
		 * 此方法的行為與 listFiles() 方法相同。
		 */
		//把所有滿足條件目錄打印出來
		for(File file: contents){
			System.out.println(file + "是一個" + (file.isDirectory()?"目錄":"檔案")
					+ "最後修改時間\n" + new Date(file.lastModified()));
		}
		/**
		 * C:\3D片源\閃電狗(左右高清).avi是一個檔案最後修改時間
		 * Tue Sep 01 10:03:14 CST 2009
		 */
	}
}