Java递归遍历文件夹及文件过滤器使用(FileFilter)
递归遍历文件夹:
public static void main(String[] args) {
getFile(new File("D:\\eclipsevaadinxu\\works\\test"));
}
/**
* @author admin
* @param file
* 递归遍历文件夹
*/
public static void getFile(File file) {
if (file.isDirectory()) {
File[] filelist = file.listFiles(new MyFileFilter());
//如果是一个文件夹,则调用其listFiles方法获取文件夹下的文件或文件夹的绝对路径
//使用文件过滤器匿名对象
for (File f : filelist) {//使用加强for遍历
getFile(f);//递归调用
}
}
}
文件过滤器,FileFilter这个接口sun公司并没有给我们实现类,所以我们可以自定义实现类,重写accept方法,调用String类的endswith方法判断文件的类型,进行过滤。
public class MyFileFilter implements FileFilter {
public boolean accept(File paramFile) {
if (paramFile.isDirectory()) {
return true;
}
else{
String name = paramFile.getName();
if(name.endsWith(".java")){
System.out.println(paramFile);
return true;
}
}
return false;
}
}
未过滤的文件:
过滤后的文件: