0

在我的 android 项目中,我不得不将sd卡中的图像存储到一个数组中。我可以过滤并获取文件夹中的所有图像。但我真正需要做的是过滤并获取一些特定图像而不是所有图像。我的代码段是,

File[] imagelist = filePath.listFiles(new FilenameFilter(){  
            public boolean accept(File dir, String name)  {  
                return ((name.endsWith(".jpg"))||(name.endsWith(".png")));
            }  
        });

那么,有人可以帮助我提供一些有用的代码段。谢谢!

4

1 回答 1

1

好的,因此,如果您在 String 数组中有所需的名称列表,那么对于通过过滤器运行的每个文件,您将必须遍历列表并将文件名与数组进行比较以查看它是否存在。如果确实如此,那么它就是你想要的。

File[] imagelist = filePath.listFiles(new FilenameFilter(){
  public boolean accept(File dir, String name){
    if(!(name.endsWith(".jpg") || name.endsWith(".png")) return false; // Only need images
    for(String validName: namesArray){
      // If the names in the list include the file extention then use this line
      if(name.equals(validName)) return true;
      // Otherwise If the names in the list don't include the file extention then use these lines
      if(name.endsWith(".jpg") && name.substring(0, name.lastIndexOf(".jpg")).equals(validName)) return true;
      if(name.endsWith(".png") && name.substring(0, name.lastIndexOf(".png")).equals(validName)) return true;
    }
    return false;
  }  
});
于 2013-10-31T05:49:59.160 回答