Определение FileType файла в папке активов
-
26-09-2019 - |
Вопрос
Вопрос: Как вы программно различаете каталоги и обычными файлами в папке активов?
При использовании AssetManager для доступа к файлам в папке активов, кажется невозможным определить, на самом деле файл файл или каталог. Вы получаете список файлов из list
метод, а затем откройте файл, используя open
метод. Я думал, возможно, используя openFd
Способ получения дескриптора файла активов (а затем впоследствии запрашивая обычный файловый дескриптор) предоставит мне некоторую информацию. Но запрашивая дескриптор файла для каталога приводит к появлению каталога в IOException (что имеет смысл, поскольку это будет означать для каталога для каталога для файлового дескриптора ...?).
В настоящее время я полагаюсь на эту IOException (в результате попытки открыть каталог в папке активов), чтобы определить, на самом деле является каталог файлов. (Открытие обычного файла работает просто отлично). Это кажется плохой идеей. Любые другие предложения для различения файла и каталога?
Решение
Я согласен с комментариями к вашему посту. Но чтобы ответить на ваш вопрос, сделайте объект файла, указанного на каталоге активовFile root = new File("path/to/directory");
Затем вы можете извлечь все свои дополнительные файлы и каталоги, такие как этоFile[] files = root.listFiles();
После того, как у вас есть список, вы можете определить, что такое используя файл .isdirectory ().
Что касается определения типов файлов, то есть так же просто, как и использование String.subString (), чтобы захватить символ после последнего периода.
надеюсь это поможет