文件过滤器_原理分析
listFiles()遍历目录的同时,获取到了文件名全路径,调用过滤器的方法accept,将获取到的路径传递给accept方法的参数fileName
accept方法接收了参数fileName,参数是listFiles传递来的
在accept方法中,进行判断,如果这个路径是Java文件,返回true,走着返回false
一旦方法返回了true
listFiles将路径保存到File数组中
fileList方法
public static void fileList(File file) {
File[] listFiles = file.listFiles(new JavaFilter());
for (File file2 : listFiles) {
// 判断是否是文件夹
if (file2.isDirectory()) {
// 递归遍历
fileList(file2);
} else {
System.out.println(file2);
}
}
}
JavaFilter.java
public class JavaFilter implements FileFilter {
@Override
public boolean accept(File fileName) {
if(fileName.isDirectory()){
return true;
}
return fileName.getName().toLowerCase().endsWith(".java");
}
}