java.io.FileFilter 是一个接口,是File的过滤器。 该接口的对象可以传递给File类的 listFiles(FileFilter) 作为参数, 接口中只有一个方法 boolean accept(File pathname) :测试pathname是否应该包含在当前File目录中,符合则返回true
简单的分析
package File;
import java.io.File;
import java.io.FileFilter;
public class Main {
public static void main(String[] args) {
//要遍历的文件夹的根目录
String rootpath="D:\\test";
File file = new File(rootpath);
printDir(file);
}
public static void printDir(File dir){
File[] files = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".png")||pathname.isDirectory();
}
});
for (File file : files) {
if (file.isDirectory()){
printDir(file);
}
else{
System.out.println("文件绝对路径:"+file.getAbsolutePath());
}
}
}
}
Lambda表达式简化
package File;
import java.io.File;
public class Main {
public static void main(String[] args) {
//要遍历的文件夹的根目录
String rootpath="D:\\test";
File file = new File(rootpath);
printDir(file);
}
public static void printDir(File dir){
File[] files = dir.listFiles(pathname -> {
return pathname.getName().endsWith(".png")
||pathname.isDirectory();});
for (File file : files) {
if (file.isDirectory()){
printDir(file);
}
else{
System.out.println("文件绝对路径:"+file.getAbsolutePath());
}
}
}
}
以上就是过滤器的一些基础知识,如有错误请各位批评指正,喜欢我的文章可以点个赞收藏,