Java listFiles查找指定类型的文件简单做法

在Java中获取指定类型的文件,可以用带参数的listFiles的来实现

在网上搜了一些方法,几乎都是新建一个实现FilenameFilter或者FileFilter的类,然后把它作为listFiles的参数

但是在写一些简单的测试代码的时候,我不想新建一个类,而是希望用更快的方法来实现文件的过滤

所以就可以这样写:

File filepath = new File("D:\\");
File[] files = filepath.listFiles(new FilenameFilter() {
	@Override
	public boolean accept(File file, String s) {
		//查找文件名以.jpg结尾的文件
		if (s.endsWith(".jpg")) {
			return true;
		}
		return false;
	}
});

这样直接new一个实现FilenameFilter接口的对象作为listFiles的参数,就不用再新建一个类

listFiles还有另外一个参数FileFilter,也同样可以实现过滤

File[] files = filepath.listFiles(new FileFilter() {
	@Override
	public boolean accept(File file) {
		//查找文件名以.jpg结尾的文件
		if (file.getName().endsWith(".jpg")) {
			return true;
		}
		return false;
	}
});


除此之外,FileFilter还有其他过滤文件的方式,比如

查找所有非文件夹文件:

File[] files = filepath.listFiles(new FileFilter() {
	@Override
	public boolean accept(File file) {
		//查找所有非文件夹文件
		if (!file.isDirectory()) {
			return true;
		}
		return false;
	}
});

查找指定大小的文件:

File[] files = filepath.listFiles(new FileFilter() {
	@Override
	public boolean accept(File file) {
		//查找大于1kb,小于2kb的文件
		long length = file.length();
		if (length > 1024 && length < 2048) {
			return true;
		}
		return false;
	}
});

个人感觉FileFilter比FilenameFilter更加强大

你可能感兴趣的:(JAVA)