对文件的递归遍历过滤查询的四种方式
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
public class DemoGetAllFileFilterImp {
public static void main(String[] args) {
File file = new File("D:\\netdiskdownloads");
getAllFile(file);
}
public static void getAllFile(File file){
//方式一:先利用匿名内部类实现接口FileFilter
/*
File[] files = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".pdf")||pathname.isDirectory();
}
});
*/
//方式二:使用Lambda传参给FileFilter
/*
File[] files = file.listFiles(((f)->f.getName().endsWith(".pdf")||f.isDirectory()));
*/
//方式三:使用匿名内部类实现接口FilenameFilter
/*
File[] files = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".pdf")||new File(dir,name).isDirectory();
}
});
*/
//方式四:使用Lambda传参给FilenameFilter
File[] files = file.listFiles(((dir,name)->name.toLowerCase().endsWith(".pdf")||new File(dir,name).isDirectory()));
for (File file1 : files) {
if(file1.isDirectory()){
getAllFile(file1);
}else {
System.out.println(file1);
}
}
}
}