Java File類學習筆記1:運用FileNameFilter類,獲得某一目錄下所有指定副檔名的檔案
阿新 • • 發佈:2019-01-18
運用FileNameFilter類,獲得某一目錄下所有指定副檔名的檔案,後續學習筆記再對File類的操作做梳理
根據帖子上的示例做了綜合和一些修改,並加了註釋,示例如下:
package com.daxiang.filenamefilter; import java.io.*; /** * @Author:daxiang * @Date:2015-7-10 * @Email:[email protected] * @Version:Version1.0 * @CopyRight:daxiang * @Description: 運用FileNameFilter類,獲得某一目錄下所有指定副檔名的檔案 */ public class FindCertainExtension { private static final String FILE_DIR = "D:\\daxiang\\mytest"; private static final String FILE_TEXT_EXT = ".java";//如需獲得其他型別的副檔名,改一下此處即可 public static void main(String args[]) { new FindCertainExtension().listFile(FILE_DIR, FILE_TEXT_EXT); } public void listFile(String folder, String ext) { // 指定目錄(如果括號裡用“.”的話表示當前目錄) File dir = new File(folder); // 獲得所有指定副檔名的檔案 GenericExtFilter filter = new GenericExtFilter(ext); if (dir.isDirectory() == false) { System.out.println("Directory does not exists : " + FILE_DIR); return; } // list out all the file name and filter by the extension String[] lists = dir.list(filter); if (lists.length == 0) { System.out.println("no files end with : " + ext); return; } // 列印所有指定副檔名檔案的名稱 for (String file : lists) { // System.out.println(file); String temp = new StringBuffer(FILE_DIR).append(File.separator) .append(file).toString(); System.out.println("file : " + temp); } // 下面的for迴圈和上面的效果相同 // for(int i=0;i<lists.length;i++){ // System.out.println("i:"+i+" file:"+files[i]); // } } // inner class, generic extension filter public class GenericExtFilter implements FilenameFilter { private String ext; public GenericExtFilter(String ext) { this.ext = ext; } public boolean accept(File dir, String name) { return (name.endsWith(ext)); } } }