Pregunta

Pregunta: ¿Cómo distinguir entre la programación directorios y archivos normales en la carpeta de activos

Cuando se utiliza AssetManager para acceder a los archivos en la carpeta de activos, parece imposible determinar si un archivo es en realidad un archivo o un directorio. Se obtiene la lista de archivos desde el método list y luego abrir el archivo usando el método open. Pensé que tal vez utilizando el método openFd para obtener el descriptor de archivo activo (y luego solicitar posteriormente el descriptor de archivo normal) se me proporcione alguna información. Pero solicitando el descriptor de archivo de un directorio de resultados en una IOException (lo cual tiene sentido ya que lo que significaría para un directorio que tiene un descriptor de archivo ...?).

Actualmente estoy confiando en que IOException (como resultado de attemptng para abrir un directorio en la carpeta de activos) con el fin de determinar si un archivo es, de hecho, un directorio. (La apertura de un archivo normal funciona bien). Esto parece una mala idea. ¿Alguna otra sugerencia para distinguir entre un archivo y un directorio?

¿Fue útil?

Solución

Estoy de acuerdo con los comentarios en su puesto. Pero para responder a su pregunta, hacer un objeto File apunta al directorio de activos File root = new File("path/to/directory");

A continuación, se puede extraer todos sus archivos y sub directorios como estos File[] files = root.listFiles();

Una vez que tenga la lista puede determinar qué es lo que el uso de File.isDirectory ().

En cuanto a la determinación de los tipos de archivo, es tan simple como usar String.substring () para agarrar el carácter del siguiente al último período.

espero que esta ayuda

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top