¿Cómo consigo un NSArray de nombres de archivo de todos los archivos en un directorio dado en mi aplicación?

StackOverflow https://stackoverflow.com/questions/1272042

Pregunta

Lo que yo quiero hacer parece bastante simple: Obtener un conjunto de nombres de archivo en un "directorio" dada en mi aplicación. Pero cuanto más jugar con NSFileManager y NSBundle me encuentro cada vez más perdido ... Sólo quiero para obtener los nombres de archivo de los archivos organizados en un directorio específico en mi proyecto Xcode iPhone ... Por ejemplo: El directorio en cuestión es llamados "imágenes" (creados utilizando "Agregar> Nuevo grupo" bajo el icono del proyecto en Xcode) y contiene 10 imágenes .png. Parece simple, pero estoy llegando a ninguna parte. Te agradecería un poco de ayuda en la búsqueda de la respuesta.

Q:? ¿Cómo consigo un NSArray de nombres de archivo de todos los archivos en un directorio dado en mi aplicación

¿Fue útil?

Solución

Si desea que la carpeta sea parte del paquete de la aplicación, es necesario crear una referencia carpeta dentro del grupo de recursos, en lugar de un grupo (se mostrará en Xcode como una carpeta azul en comparación con el amarillo) .

Para ello, arrastra la carpeta desde el Finder y seleccione la carpeta de referencia cuando se le solicite.

Una vez que tenga eso, usted debe ser capaz de obtener el contenido de la carpeta con algo como:

NSError *error = nil;

NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath]
                            stringByAppendingPathComponent:@"YourFolder"];

NSArray  *yourFolderContents = [[NSFileManager defaultManager] 
                                contentsOfDirectoryAtPath:yourFolderPath error:&error];

Otros consejos

La respuesta aceptada ha estado en desuso desde hace años. A continuación se debe utilizar en su lugar.

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error

Actualización: @macserv actualizado la respuesta aceptada después de que envió este.

Hoy en día, esta es la forma de hacerlo:

  1. En el Finder, arrastrar y soltar la carpeta en el navegador de su proyecto y la siguiente ventana emergente se mostrará: introducir descripción de la imagen aquí
  2. Como se puede ver en esa pantalla, usted tiene que seleccionar Crear referencias de carpetas .
  3. Haz lo que la solución de este post es lo indique. Es decir:

    NSError * error = nil;

    NSString * yourFolderPath = [[[NSBundle mainBundle] ResourcePath]                             stringByAppendingPathComponent: @ "YourFolder"];

    NSArray * yourFolderContents = [[NSFileManager defaultManager]                                 error yourFolderPath:: contentsOfDirectoryAtPath y error];

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