2012-02-10 12 views
10

Estoy tratando de copiar los archivos que agrego a una carpeta llamada "incluye" a una carpeta en el directorio de documentos llamado también "incluye". Me sale para resContents valor nulo. ¿Por qué? GraciasiOS copiar archivos del paquete principal al directorio de documentos

- (void)copyResources{ 

     NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"includes"]; 
     NSString *destPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"includes"]; 

     NSArray* resContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:sourcePath error:NULL]; 

     for (NSString* obj in resContents){ 
      NSError* error; 
      if (![[NSFileManager defaultManager] copyItemAtPath:[sourcePath stringByAppendingPathComponent:obj] toPath:[destPath stringByAppendingPathComponent:obj] 
        error:&error]) 
       NSLog(@"Error: %@", error);; 
     } 

    } 

Respuesta

6

Debe agregar a su proyecto Xcode su carpeta includes como referencia de carpeta y no como grupo.

Los grupos están destinados a mantener las cosas organizadas en lugar de proporcionar una estructura de carpetas y, por lo tanto, al copiar en el dispositivo, todos los archivos terminan en el mismo nivel.

+0

genial, trabajando! Gracias – Jaume

2

Busque en el paquete de aplicaciones compiladas.

Normalmente, los paquetes generados XCode son planos. Esto significa que aunque sus archivos de recursos agregados se copiarán en el paquete, los directorios que haya creado no lo harán y, por lo tanto, no hay un directorio "incluye" en la ruta del recurso. En consecuencia, el contenido de su fuente será nulo. Entonces, en su caso, intente usar simplemente `NSString * sourcePath = [[NSBundle mainBundle] resourcePath];

Editar: Bueno y obviamente agregar una referencia de carpeta también funciona (créditos a Ignacio Inglese).

+0

bien, pero se enumeran todos los archivos, incluidos .nib y plists! Necesito seleccionar solo archivos de una carpeta específica. ¿Imposible? – Jaume

+0

Es una estructura plana en el paquete. – twilson

+0

@Jaume Bueno, entonces tendrá que seleccionar los archivos que necesita (posiblemente mediante una extensión común, o mantener una lista de los nombres de archivo en su código). –

Cuestiones relacionadas