2011-09-07 10 views
8

Estoy tratando de obtener una matriz de todos los archivos png en un subdirectorio de la carpeta de recursos. En mi carpeta de recursos de aplicaciones, he creado una carpeta llamada "imágenes". Esta carpeta contiene todos los archivos png que necesito mostrar.Obtener ruta al subdirectorio en la carpeta de recursos

Esta es la forma en que trataba de obtener la ruta:

NSString *imagepath = [NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] bundlePath],@"images/"]; 

NSLog(@"Path to Images: %@", imagepath); 

NSArray * paths = [NSBundle pathsForResourcesOfType: @"png" inDirectory:imagepath]; 
NSMutableArray * allImageNames = [[NSMutableArray alloc] init]; 

for (NSString * path in paths) 
{ 
    if ([[path lastPathComponent] hasPrefix: @"AQ"]) 
     continue; 

    [allImageNames addObject: [path lastPathComponent]]; 
} 

De esta manera consigo una trayectoria como .../appname.app/imágenes

Pero si trato de hacerlo de esa manera, la matriz está siempre vacía. ¿Qué estoy haciendo mal?

greetz, Zarak

+0

¿Cuáles son los nombres de las imágenes? ¿Son como 'image.AQ'? – Nekto

+0

Los nombres de las imágenes son como "banana_icon.png". Pero utilizo AQGridView para crear una galería de todos los archivos. – DevZarak

+0

Entonces, ¿por qué comprueba '[[path lastPathComponent]] hasPrefix: @" AQ "]'? – Nekto

Respuesta

26

Así lo resolvió.

NSBundle *mainBundle = [NSBundle mainBundle]; 
NSArray *pngs = [mainBundle pathsForResourcesOfType:@".png" 
inDirectory:@"random pictures"]; 

NSLog(@"pngs in my dir:%@", pngs); 

dir estructura: "Recursos/imágenes aleatorias".

Esto funciona, pero, cuando se agrega a los archivos 'Recursos', es necesario comprobar "Crear referencias de carpeta para todas las carpetas ADED", y no "Crear grupos para todas las carpetas añadidas".

important step

Saludos!

+1

Resolvió el problema usando otra solución, pero lo tendré en cuenta y lo intentaré en otro proyecto. Para resumir, obtienes la aceptación. ;) Thx por su respuesta. – DevZarak

+0

No funcionó para mí, tengo una carpeta en-trabajo con archivos pdf, estoy tratando de acceder a los archivos usando: NSString * inWorkPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @ "In-Work"]; NSArray * resContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: error de inWorkPath: & error]; y resContents return nil –

+0

¿Marcó "Crear referencias de carpeta" al agregar la carpeta al proyecto? @EshwarChaitanya – codrut

Cuestiones relacionadas