Список папок и файлов в Assets

235
03 ноября 2017, 09:05

Каким образом я могу получить названия папок в assets, а также список файлов в каждой из этих папок?

Answer 1

Есть 2 способа:

  1. Общепринятый: воспользоваться вызовом AssetManager.list(), где AssetManager можно получить из Activity через getAssets()
  2. Нетрадиционный (почти недокументированный): File file=new File("file:///android_asset/"); получим ссылку на корневой каталог asset, откуда уже можно раскручивать File.listFiles()
Answer 2

Добавлю к соседнему ответу, что список директорий можно получить, например, рекурсивно:

public static List<File> getDirs(String dirPath) {
    List<File> resultDirsList = new ArrayList<>();
    File[] dirFiles = new File(dirPath).listFiles();
    for (File file : dirFiles) {
        if (file.isDirectory()) {
            resultDirsList.add(file);
            resultDirsList.addAll(getDirs(file.getPath()));
        }
    }
    return resultDirsList;
}

Аналогично можно получить список файлов:

public static List<File> getFiles(String dirPath) {
    List<File> resultFilesList = new ArrayList<>();
    File[] dirFiles = new File(dirPath).listFiles();
    for (File file : dirFiles) {
        if (file.isDirectory()) {
            resultFilesList.addAll(getFiles(file.getPath()));
        } else {
            resultFilesList.add(file);
        }
    }
    return resultFilesList;
}
READ ALSO
Как задать иконку для Cluster Markers

Как задать иконку для Cluster Markers

Есть много маркеровДобавляются через класстер

290
Clean Architecture android

Clean Architecture android

Начал в своем MVP юзать интерактор) При этом Rx я не использовал) В Interactor`е я инжектил ретрофит и отправлял запрос)

236
Не отрабатывает корректно push

Не отрабатывает корректно push

ПриветТакая проблема

292