Я использую следующий код для получения всех каталогов из внешнего хранилища:
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;
}
Код работает нормально, и я получаю все каталоги, которые содержат изображения из внешнего хранилища. Но проблема в том, что я получаю некоторые каталоги, которые очень глубоко в файловом менеджере. Например, вот так:
Я хочу получить только основные каталоги из внешнего хранилища, как в таких приложениях, как instagram, twitter и т. Д. Как мне этого добиться?