我正在使用以下代码在 java 中选择文件:
File folder = new File("path to folder");
File[] listOfFiles = folder.listFiles();
现在如果我只想选择图像文件怎么办?
File.listFiles()
使用接受FileFilter
or的版本之一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)$");
//
};
});
您可以使用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());
}
});
愿此代码对您有所帮助
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;
}
}
}