Определение типа файла в папке ресурсов - PullRequest
2 голосов
/ 10 июня 2010

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

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

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

1 Ответ

1 голос
/ 10 июня 2010

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

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

Получив список, вы можете определить, что к чему, используя File.isDirectory ().

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

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

...