2013-07-15 2 views

ответ

11

Используйте одну из версий File.listFiles(), которая принимает FileFilter или FilenameFilter, чтобы определить подходящие критерии.

Например:

File[] files = folder.listFiles(
    new FilenameFilter() 
    { 
     public boolean accept(final File a_directory, 
           final String a_name) 
     { 
      return a_name.endsWith(".jpg"); 
      // Or could use a regular expression: 
      // 
      //  return a_name.toLowerCase().matches(".*\\.(gif|jpg|png)$"); 
      // 
     }; 
    }); 
+0

Вам нужно будет решить, какое изображение, а что нет. Как только вы это сделали, использование петли для фильтрации довольно просто. –

+1

@PeterLawrey, _Вы должны будете решить, какой образ и что нет_, как это отличается от _define критериев соответствия? Код, который определяет совпадение, может быть так же легко вставлен в фильтр или цикл, я не уверен, как можно считать, что лучше другого. – hmjd

+0

да, это работает лучше всего для меня. Большое спасибо – insanity

4

Вы можете использовать File.listFiles() с FilenameFilter использованием ImageIO.getReaderFileSuffixes

File[] files = dir.listFiles(new FilenameFilter() { 

    public boolean accept(File dir, String name) { 
     List<String> images = Arrays.asList(ImageIO.getReaderFileSuffixes()); 

     String extension = ""; 
     int i = name.lastIndexOf('.'); 
     if (i > 0) { 
     extension = name.substring(i+1); 
     } 

     return images.contains(extension.toLowerCase()); 
    } 
}); 
1

мая этот код поможет вам

  String imageExtension[] = new String[]{ 
      "jpg", "png", "bmp" // add more 
     }; 
     File direcory = new File("path"); 
     File[] listFiles = direcory.listFiles(); 
     ArrayList<File> imageFileList = new ArrayList(); 
     for(File aFile : listFiles) { 
      // use FilenameUtils.getExtension from Apache Commons IO 
      String extension = FilenameUtils.getExtension(aFile.getAbsolutePath()); 
      for(String ext: imageExtension) { 
       if(extension.equals(ext)) { 
        imageFileList.add(aFile); 
        break; 
       } 
      } 
     } 
Смежные вопросы