在java中选择特定类型的文件

时间:2013-07-15 11:08:15

标签: java image file

我使用以下代码在java中选择文件:

  File folder = new File("path to folder");
  File[] listOfFiles = folder.listFiles();

现在,如果我只想选择图像文件该怎么办?

3 个答案:

答案 0 :(得分:11)

使用接受File.listFiles()FileFilterFilenameFilter版本之一来定义匹配条件。

例如:

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)$");
            //
        };
    });

答案 1 :(得分: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());
   }
});

答案 2 :(得分: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;
                }
            }
        }