0%

Java FilenameFilter 文件名过滤器的使用 File.listFiles得到指定类型文件

在Java里,File类有个listFiles方法可以得到指定目录里的所有文件列表,并返回一个File数组。有时我们只需要某些指定类型的文件,比如说jpg图片,listFiles可以通过传入FilenameFilter参数来过滤文件。 FilenameFilter是一个接口,不能直接实例化,所以要先写个类来继承它:

class ImageFilter implements FilenameFilter{
     public boolean isJpg(String filename){    
            if (filename.toLowerCase().endsWith(".jpg")){   
            	//把文件转成小写后看其后缀是否为.jpg
              return true;    
            }else{    
              return false;    
            }    
          }  
    
    @Override
    public boolean accept(File dir, String filename) {
        // TODO Auto-generated method stub
        return isJpg(filename);
        //覆写accept方法
    }
}

接下来,listFiles方法传入ImageFilter的实例:

File f = new File("/sdcard/");
File[] list=f.listFiles(new ImageFilter());

这样,list这个数组里只有jpg图片了。