Ответ 1
Я не знаю прямого способа сделать это, но я сделал аналогичную вещь с папкой с ресурсами, которая должна работать нормально. Я использую IntelliJ IDEA и ANT для Windows для своего здания, но вы должны иметь возможность адаптировать это для Eclipse или других IDE и * nix/OSX.
Перед компиляцией я использую фасет ANT для запуска команды dir, чтобы перечислить все файлы в папке с ресурсами и передать вывод в текстовый файл:
dir /assets /s /b > /res/raw/filelist.txt
Затем я читаю filelist.txt в hashmap, чтобы дать мне очень простой и быстрый способ найти любой файл (у меня есть сотни файлов в десятках активов вложенных папок, а AssetManager слишком мозг мертв, чтобы справиться с этим).
public class AssetsFileManager {
private static Map<String, String> files = new HashMap<String, String>();
static{
BufferedReader in = new BufferedReader(new InputStreamReader(this.getResources.openRawResource(R.raw.filelist)))
String line = "";
while ((line = in.readLine()) != null) {
map.put(line.substring(line.lastIndexOf("\\")+1), line);
}
in.close();
}
}
Обратите внимание на скрытую обратную косую черту, \\
Это дает мне карту с именем файла и полным путем в качестве значения.
Вы можете легко адаптировать этот подход, чтобы получить список ваших папок. Например. вы можете использовать dir /ad /b /s