在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图片了。