Tôi chọn tập tin trong java sử dụng đoạn mã sau:Chọn một loại tập tin trong java
File folder = new File("path to folder");
File[] listOfFiles = folder.listFiles();
Bây giờ phải làm gì nếu tôi muốn chỉ chọn tập tin hình ảnh?
Tôi chọn tập tin trong java sử dụng đoạn mã sau:Chọn một loại tập tin trong java
File folder = new File("path to folder");
File[] listOfFiles = folder.listFiles();
Bây giờ phải làm gì nếu tôi muốn chỉ chọn tập tin hình ảnh?
Sử dụng một trong các phiên bản File.listFiles()
chấp nhận FileFilter
hoặc FilenameFilter
để xác định tiêu chí phù hợp.
Ví dụ:
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)$");
//
};
});
Có một cái nhìn ở đây File Choosers
Bạn có thể sử dụng File.listFiles() với một FilenameFilter sử dụng 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());
}
});
May mã này giúp bạn
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;
}
}
}
Bạn sẽ phải quyết định đó là một hình ảnh và những gì không. Một khi bạn đã làm điều này, sử dụng một vòng lặp để lọc là khá dễ dàng. –
@PeterLawrey, _Bạn sẽ phải quyết định đó là một hình ảnh và những gì là not_, làm thế nào là khác với _define các tiêu chí phù hợp_? Mã xác định kết quả khớp có thể dễ dàng được chèn vào bộ lọc hoặc vòng lặp, tôi không chắc chắn cách thức được coi là tốt hơn so với bộ lọc khác. – hmjd
có nó hoạt động tốt nhất cho tôi. Cảm ơn rất nhiều – insanity