package day16;
import java.io.File;
import java.io.FilenameFilter;
public class ListAllDemo {
/**
* @param args
*/
public static void main(String[] args) {
File src = new File("src");
list(src,".java");
}
/**
* 显示指定文件夹及子文件下的所有的指定类型文件
* @param dir
* @param ext
* */
public static void list(File dir,String ext){
//显示当前目录中所有的指定文件
listFiler(dir,ext);
System.out.println("-----"+dir.getAbsolutePath()+"-------");
//获得当前目录的所有子目录
File[] all = dir.listFiles();
//遍历子目录
for(int i=0;i<all.length;i++){
File d = all[i];
if(d.isDirectory()){//是文件夹
list(d,ext);
}
}
}
private static void listFiler(File dir,String ext){
File[] all = dir.listFiles(new Filter(ext));
for(int i=0;i<all.length;i++){
File f = all[i];
System.out.println(f.getName());
}
}
static class Filter implements FilenameFilter{
private String ext;
public Filter(String ext){
this.ext = ext;
}
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return name.endsWith(".java");
}
}
}