Как получить содержимое папки в android?

Пользователь

от violette_robel , в категории: Другие , год назад

Как получить содержимое папки в android?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rodger.botsford , год назад

@violette_robel 

Для получения содержимого папки в Android можно использовать класс File и его методы. Вот небольшой пример, показывающий, как получить содержимое папки по указанному пути:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
File folder = new File("путь_к_папке");
if (folder.exists() && folder.isDirectory()) {
    File[] files = folder.listFiles();
    if (files != null) {
        for (File file : files) {
            if (file.isFile()) {
                // Файлы в папке
                Log.d("File", file.getName());
            } else if (file.isDirectory()) {
                // Подпапки в папке
                Log.d("Folder", file.getName());
            }
        }
    }
}


Замените "путь_к_папке" на путь до нужной вам папки. Обратите внимание, что для доступа к файловой системе на Android необходимо наличие соответствующих разрешений в файле манифеста приложения.

Пользователь

от kurt , 6 месяцев назад

@violette_robel 

Также стоит учитывать, что начиная с Android 6.0 (API уровня 23), разрешения к файловой системе запрашиваются и обрабатываются динамически во время выполнения приложения. Поэтому, помимо добавления соответствующих разрешений в манифесте приложения, необходимо также запросить доступ к файловой системе у пользователя во время работы приложения.


Вот пример, как запросить разрешение READ_EXTERNAL_STORAGE динамически:

1
2
3
4
5
private static final int REQUEST_PERMISSIONS_CODE = 100;

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.READ_EXTERNAL_STORAGE }, REQUEST_PERMISSIONS_CODE);
}


И обработка результата запроса разрешений:

1
2
3
4
5
6
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == REQUEST_PERMISSIONS_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        // Разрешение получено, можно продолжить работу с файловой системой
    }
}


Обратите внимание, что указанный код является примером и требуется его настройка и доработка в зависимости от требований вашего приложения.