
public class FileTest ...{
static FileFilter filter = new FileFilter() ...{
private List extList = new ArrayList();
...{
String[] exts = ".java;.ico;.doc".split(";");
for (String ext : exts)
extList.add(ext);
}

public boolean accept(File pathname) ...{
if (pathname.isDirectory())
return true;
int idx = pathname.getName().lastIndexOf(".");
if (idx >= 0 && extList.contains(pathname.getName().substring(idx)))
return true;
return false;
}
};

public static void findFiles(File dir, List list) ...{
if (!dir.exists())
return;
File[] files = dir.listFiles(filter);
for (File file : files) ...{
if (file.isDirectory())
findFiles(file, list);
else
list.add(file);
}
}

public static void main(String[] args) ...{
List<File> list = new ArrayList();
findFiles(new File("D:/temp"), list);
for (File file : list)
System.out.println(file.getAbsolutePath());
}
}

本文介绍了一个使用Java实现的文件过滤器示例,该过滤器可以筛选指定扩展名的文件,包括.java, .ico 和.doc等,并递归地搜索目录以查找符合要求的文件。
9098

被折叠的 条评论
为什么被折叠?



