在Java里,File类有个listFiles方法可以得到指定目录里的所有文件列表,并返回一个File数组。有时我们只需要某些指定类型的文件,比如说jpg图片,listFiles可以通过传入FilenameFilter参数来过滤文件。
FilenameFilter是一个接口,不能直接实例化,所以要先写个类来继承它:
接下来,listFiles方法传入ImageFilter的实例:
这样,list这个数组里只有jpg图片了。
補充也可在Filter的accept Method中增加參數dir 以利判斷檔案大小,類似此寫法:
public boolean accept(File dir, String fileNmae) {
System.out.println("FileDetectFilter : dir = " + dir + ", fileNmae=" + fileNmae);
if (!fileNmae.toLowerCase().endsWith(".jpg")) //判斷檔名結尾是否為jpg
return false;
if (!fileNmae.startsWith("Test")) //判斷檔名開頭是否為Test
return false;
File f = new File(dir, fileNmae);
if (f.length() >= (10*1024*1024)) //判斷檔案是否超過10MB
return true;
else
return false;
}
請先 登入 以發表留言。