Вопрос: Как вы программно различаете директории и обычные файлы в папке с ресурсами?Определение файла файла в папке с активами
При использовании AssetManager для доступа к файлам в папке с ресурсами кажется невозможным определить, является ли файл фактически файлом или каталогом. Вы получаете список файлов из метода list
, а затем открываете файл, используя метод open
. Я думал, возможно, используя метод openFd
для получения дескриптора файла актива (а затем последующего запроса нормального дескриптора файла) предоставит мне некоторую информацию. Но запрос файлового дескриптора для каталога приводит к исключению IOException (что имеет смысл, так как это означало бы, что каталог имеет файловый дескриптор ...?).
В настоящее время я полагаюсь на это IOException (в результате попытки открыть каталог в папке с ресурсами), чтобы определить, действительно ли файл является каталогом. (Открытие обычного файла работает просто отлично). Это кажется плохой идеей. Любые другие предложения по разграничению между файлом и каталогом?
Как вы упорядочиваете свои файлы в каталоге активов? Разве вы не можете хранить файлы , отделенные от папок, вместо того, чтобы смешивать все теги? –
Согласовано. Вы тот, кто вводит содержимое каталога 'assets /'. Следовательно, вам не нужно гадать, что такое и не является каталогом. – CommonsWare
Независимо от того, как вы размещаете файлы в папке 'assets /', эта проблема существует. Метод 'list' отправляет обратно массив' String [] 'всех файлов и каталогов, расположенных в запрошенном пути каталога (например,' image.jpg', 'music.mp3',' Tools'). Если вы хотите иметь какую-либо структуру каталогов внутри 'assets /', вы столкнетесь с этой проблемой. – ChaimKut