Как найти все файлы с определенным расширением на Android?

Я использую fileBrowser для поиска файлов на телефоне, но я хотел показать все файлы, которые мое приложение может открыть пользователю, а затем пользователь выбирает один. Как музыкальный плеер, который показывает все песни на телефоне, на SD-карте и во внутренней памяти, а не только в папке, где находится пользователь.

2 ответов


используйте фильтры имен файлов при перечислении файлов. В приведенном ниже примере перечислены все mp3-файлы в данном root каталог (Примечание-приведенный ниже код не делает это рекурсивно для всех папок в 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();
    }
};

Я не знаю, какую реализацию FileBrowser вы используете, но хороший должен принять FileFilter. Вы можете реализовать свой собственный фильтр, который обеспечивает код public abstract boolean accept (File pathname)