在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更加强大
新闻热点
疑难解答