/**
* 过滤文件或目录
* 有时当我们读取某个目录下的文件时,有时不需要所有的 ,只有
* 满足一定命名规则的文件或目录才读取出来
*/
public class DirList {
public static void main(final String[] args) {
File path = new File(".");
String[] list;
list = path.list(new FilenameFilter() {//匿名文件过滤器实现
//只读取文件或目录至少为4个字符的文件,这里可以根据进行需要修改
private Pattern pattern = Pattern.compile(".{4,}");
/*
* dir 表示当前处理的这个文件是在哪个目录里面的
* name 表示当前处理的文件名或目录名
*/
public boolean accept(File dir, String name) {
//切记,文件名里不能有路径信息。为此你只要用一个String对象来创建
//File对象,然后再调用这个File对象的getName( )就可以了。它会帮
//你剥离路径信息(以一种平台无关的方式)。
return pattern.matcher(new File(name).getName())
.matches();
}
});
Arrays.sort(list, new Comparator() {//排序接口匿名类实现
public int compare(Object o1, Object o2) {
String s1 = (String) o1;
String s2 = (String) o2;
//对过滤出的文件进行忽略大写小排序
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
});
for (int i = 0; i < list.length; i++) {
System.out.println(list[i]);
}
}
}