Java 如何在Android上查找具有特定扩展名的所有文件?

Java 如何在Android上查找具有特定扩展名的所有文件?,java,android,file-browser,Java,Android,File Browser,我正在使用文件浏览器查找手机上的文件,但我想向用户显示我的应用程序可以打开的所有文件,然后用户选择一个。像音乐播放器一样,它可以显示手机、SD卡和内存中的所有歌曲,而不仅仅是用户所在文件夹中的歌曲。我不知道您使用的是什么文件浏览器实现,但是一个好的应该接受一个新的版本。您可以实现自己的过滤器,为公共抽象布尔接受(文件路径名)提供代码,同时列出文件。下面的示例列出了给定root目录中的所有mp3文件(注意-下面的代码不会对root下的所有文件夹递归执行此操作)- 非常感谢。现在我正试图这样做以获取

我正在使用文件浏览器查找手机上的文件,但我想向用户显示我的应用程序可以打开的所有文件,然后用户选择一个。像音乐播放器一样,它可以显示手机、SD卡和内存中的所有歌曲,而不仅仅是用户所在文件夹中的歌曲。

我不知道您使用的是什么文件浏览器实现,但是一个好的应该接受一个新的版本。您可以实现自己的过滤器,为
公共抽象布尔接受(文件路径名)

提供代码,同时列出文件。下面的示例列出了给定
root
目录中的所有mp3文件(注意-下面的代码不会对
root
下的所有文件夹递归执行此操作)-


非常感谢。现在我正试图这样做以获取子文件夹中的所有文件,这只是时间问题。我认为字符串检查最好是:name.length()>=4&&name.subString(name.length-4).toLowerCase().equals(.mp3)或类似的内容(未检查)。原因是您不需要以这种方式多次检查字符串。
String files[] = root.list(audioFilter);

FilenameFilter audioFilter = new FilenameFilter() {
    File f;
    public boolean accept(File dir, String name) {
    if(name.endsWith(".mp3") || name.endsWith(".MP3")) {
            return true;
        }
        f = new File(dir.getAbsolutePath()+"/"+name);

        return f.isDirectory();
    }
};