`

File类过滤文件或目录

    博客分类:
  • Java
 
阅读更多
/**
 * 过滤文件或目录
 * 有时当我们读取某个目录下的文件时,有时不需要所有的 ,只有 
 * 满足一定命名规则的文件或目录才读取出来
 */
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]);
		}
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics