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

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

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

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

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

您可以使用ImageIO.getReaderFileSuffixes将File.listFiles()与FilenameFilter一起使用

 File[] files = dir.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { List images = Arrays.asList(ImageIO.getReaderFileSuffixes()); String extension = ""; int i = name.lastIndexOf('.'); if (i > 0) { extension = name.substring(i+1); } return images.contains(extension.toLowerCase()); } }); 

看看这里文件选择器

愿这段代码可以帮到你

  String imageExtension[] = new String[]{ "jpg", "png", "bmp" // add more }; File direcory = new File("path"); File[] listFiles = direcory.listFiles(); ArrayList 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; } } }