Как получить все основные каталоги, которые содержат изображения из внешнего хранилища - PullRequest
0 голосов
/ 29 июня 2019

Я использую следующий код для получения всех каталогов из внешнего хранилища:

private void GetDirectories(String directory)
{
    File newFile = new File(directory);
    File[] listFiles = newFile.listFiles();

    if (listFiles.length > 0)
    {
        for (File file : listFiles)
        {
            if (file.isDirectory())
            {
                directories.add(file.getAbsolutePath());
                GetDirectories(file.getAbsolutePath());
            }
        }
    }
}

И я использую следующий код для фильтрации каталогов с изображениями из списка directories:

private boolean GetFiles(String directory)
{
    File file = new File(directory);
    File[] listFiles = file.listFiles();

    if (listFiles.length > 0)
    {
        for (int i =0; i < listFiles.length; i++)
        {
            if (listFiles[i].isFile())
            {
                if (listFiles[i].getName().endsWith(".png")
                        || listFiles[i].getName().endsWith(".jpg")
                        || listFiles[i].getName().endsWith(".jpeg"))
                {
                    return true;
                }
            }
            else if (listFiles[i].isDirectory())
            {
                GetFiles(listFiles[i].getAbsolutePath());
            }
        }
    }
    else
    {
        return false;
    }
    return false;
}

Код работает нормально, и я получаю все каталоги, которые содержат изображения из внешнего хранилища. Но проблема в том, что я получаю некоторые каталоги, которые очень глубоко в файловом менеджере. Например, вот так: enter image description here

Я хочу получить только основные каталоги из внешнего хранилища, как в таких приложениях, как instagram, twitter и т. Д. Как мне этого добиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...