java - 获取文件扩展名方法无法正常工作

标签 java android

我编写了这段代码来获取文件扩展名数组,以检查该文件夹中是否有任何图像:

       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/

相关文章:

java - C# 和 Java - 将文件从 Android 上传到 WCF

android - Android Gradle构建两次包含jni库

android - 将应用程序内的图像保存到图库中的墙纸文件夹

android - 使用 Uber API 获取用户端点位置

java - 我怎样才能把它移到另一个类(class)

java - 与展望整合

java - 将对象存储到临时对象中并且不更改原始对象值

java - 保持操纵杆上的位置

java - 自动滚动代码不起作用 : cannot find symbol

java - 如何在Windows上设置Java路径?