这段代码工作得很好,但它只检测 JPG 而不是 PNG
public String[] getImageFileList(String path_to_directory){
File file = new File(path_to_directory);
if(!file.exists())return null;
String[] images = file.list(new FilenameFilter() {
@Override
public boolean accept(File current, String name) {
boolean result;
File file = new File(current, name);
String mimeType = new MimetypesFileTypeMap().getContentType(file).split("/")[0];
result = mimeType.equals("image");
return result;
}
});
return images;
}
如何让它也检测 PNG 图像?
编辑:仔细检查时,“结果”将变为 JPG 的“图像”和 PNG 的“应用程序”。我猜 PNG 不是唯一具有该“应用程序”mimeType 的文件类型是否正确?
最佳答案
这个问题可以通过像这样在 MimetypesFileTypeMap 中定义你想要查找的文件类型来解决:
MimetypesFileTypeMap mtftp = new MimetypesFileTypeMap();
mtftp.addMimeTypes("image png jpg jpeg")
生成的功能代码变成了这样:
public String[] getImageFileList(String path_to_directory){
File file = new File(path_to_directory);
if(!file.exists())return null;
String[] images = file.list(new FilenameFilter() {
@Override
public boolean accept(File current, String name) {
boolean result;
File file = new File(current, name);
MimetypesFileTypeMap mftp = new MimetypesFileTypeMap();
mftp.addMimeTypes("image png jpg jpeg");
String mimeType = mftp.getContentType(file).split("/")[0];
result = mimeType.equals("image");
System.out.println(mimeType);
return result;
}
});
return images;
}
关于java - 如何检测 PNG 图像而不仅仅是 JPG 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29523215/