在File類中有兩個和listFiles重載的方法,方法傳遞的參數就是過濾器,方法如下:
1. 重載方法1
1.1 方法名稱
File[] listFiles(FileFilter filter)
1.2 說明
java.io.FileFilter接口是用於抽象路徑名File的過濾器,其主要作用是過濾file文件,接口中只有唯一的抽象方法accept,如下:
boolean accept(File pathname); //判斷指定抽象路徑名是否應該包含在某個路徑名列表中
//參數File pathname指的是listFiles方法遍歷目錄,得到的全部文件
1.3 案例
private static void getAllFiles1(File file) {
if(file.isDirectory()){
File[] files = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {//將.java結尾的文件存儲到files中
return pathname.isDirectory || pathname.getName().endsWith(".java");
}
});
for (File file1 : files) {
System.out.println(file1);
}
}
}
2. 重載方法2
2.1 方法名稱
File[] listFiles(FilenameFilter filter)
2.2 案例
private static void getAllFiles1(File file) {
if(file.isDirectory()){
File[] files = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir,name).isDirectory() || name.endsWith(".java");
}
});
for (File file1 : files) {
System.out.println(file1);
}
}
}