需求,過濾出C盤demo目錄下 所有以.java的文件不區分大小寫
通過實現FileFilter接口 定義過濾規則,然后將這個實現類對象傳給ListFiles方法作為參數即可。
使用遞歸方法實現
package demo03; /** * 寫一個實現FileFilter的類,定義過濾規則 */ import java.io.File; import java.io.FileFilter; public class MyFilter implements FileFilter { @Override public boolean accept(File pathname) { if(pathname.isDirectory()) return true; return pathname.getName().toLowerCase().endsWith(".java"); } }
package demo03; import java.io.File; /* * 遍歷目錄,獲取目錄下的所有.java文件 * 遍歷多級目錄,方法遞歸實現 * 遍歷的過程中,使用過濾器 */ public class FileDemo1 { public static void main(String[] args) { File file=new File("c:\\demo"); getAllJava(file); } /** * 定義方法,實現遍歷指定目錄 * 獲取目錄中所有的.java文件 */ public static void getAllJava(File dir){ //System.out.println(dir); //調用File對象方法listFiles()獲取,加入過濾器 File[] fileArr=dir.listFiles(new MyFilter()); for(File f:fileArr){ if(f.isDirectory()){ //遞歸進入文件夾遍歷 getAllJava(f); }else{ System.out.println(f); } } } }