我编写了这段代码来获取文件扩展名数组,以检查该文件夹中是否有任何图像:
if (file.isDirectory()) {
listFile = file.listFiles();
extension = new String[listFile.length];
for (int i = 0; i < listFile.length; i++) {
FilePathStrings[i] = listFile[i].getAbsolutePath();
FileNameStrings[i] = listFile[i].getName();
int ex = FilePathStrings[i].lastIndexOf('.');
if (ex >= 0) {
extension[i] = FilePathStrings[i].substring(ex+1);
}
}
if (!Arrays.asList(extension).contains("jpg") || !Arrays.asList(extension).contains("jpeg")
|| !Arrays.asList(extension).contains("png")) {
//Do Something
}
但即使路径中存在一些具有精确“jpg”扩展名的图像,它也始终返回true(获取文件路径和列表文件的部分100%工作)。
我尝试了文件名和文件路径,但没有一个有效。
最佳答案
listFiles
还采用 FileFilter
作为参数
File[] files = file.list(new FilenameFilter() {
public boolean accept(File directory, String fileName) {
return fileName.endsWith(".jpg") || fileName.endsWith(".png");
}
});
你可以用它过滤掉你不感兴趣的文件
关于java - 获取文件扩展名方法无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26046070/