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

9

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

2个回答

9

在列出文件时使用文件名过滤器。以下示例列出给定 root 目录中的所有 mp3 文件(注意 - 以下代码不会递归地遍历 root 下的所有文件夹) -

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();
    }
};

非常感谢。现在我正在尝试让它获取子文件夹中的所有文件,这只是时间问题。 - Vitor Rangel
我认为字符串检查最好是:name.length()>=4 && name.subString(name.length-4).toLowerCase().equals(".mp3"),或者类似的东西(没有检查过)。原因是这样你就不需要再次遍历字符串了。 - android developer

1

我不知道您使用的是哪种文件浏览器实现,但一个好的实现应该接受文件过滤器。您可以自己实现过滤器,并提供public abstract boolean accept (File pathname)的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接