檔案過濾FilenameFilter
阿新 • • 發佈:2019-02-14
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 */ } }