Вопрос

Вопрос: Как вы программно различаете каталоги и обычными файлами в папке активов?

При использовании AssetManager для доступа к файлам в папке активов, кажется невозможным определить, на самом деле файл файл или каталог. Вы получаете список файлов из list метод, а затем откройте файл, используя open метод. Я думал, возможно, используя openFd Способ получения дескриптора файла активов (а затем впоследствии запрашивая обычный файловый дескриптор) предоставит мне некоторую информацию. Но запрашивая дескриптор файла для каталога приводит к появлению каталога в IOException (что имеет смысл, поскольку это будет означать для каталога для каталога для файлового дескриптора ...?).

В настоящее время я полагаюсь на эту IOException (в результате попытки открыть каталог в папке активов), чтобы определить, на самом деле является каталог файлов. (Открытие обычного файла работает просто отлично). Это кажется плохой идеей. Любые другие предложения для различения файла и каталога?

Это было полезно?

Решение

Я согласен с комментариями к вашему посту. Но чтобы ответить на ваш вопрос, сделайте объект файла, указанного на каталоге активовFile root = new File("path/to/directory");

Затем вы можете извлечь все свои дополнительные файлы и каталоги, такие как этоFile[] files = root.listFiles();

После того, как у вас есть список, вы можете определить, что такое используя файл .isdirectory ().

Что касается определения типов файлов, то есть так же просто, как и использование String.subString (), чтобы захватить символ после последнего периода.

надеюсь это поможет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top