2012-05-19 14 views
5

Por alguna razón, fopen da el error No such file or directory aunque he convertido la ruta a la ruta de los documentos.fopen issue in iOS

NSString *docsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
NSString *filePath = [docsPath stringByAppendingPathComponent:filename]; 

paso el NSString utilizando el método UTF8String y sólo está abierto en modo de lectura con

if ((fh=fopen(filename, "r+b")) == NULL){ 
    perror("fopen"); 
    return -1; 
} 

La siguiente ruta completa se imprime al intentar abrir el nombre de archivo (I quitado los valores exactos para la aplicaciones dir nombre real)

/var/mobile/Applications/#####/Documents/testImages.pak

¿Por qué fopen no detectar el archivo? Lo he agregado al objetivo e incluso he intentado cambiar la configuración de ubicación en el inspector de archivos a Relative to Group y Relative to Project

+1

¿Qué tal abrir filePath en lugar de nombre de archivo? –

+0

La variable de nombre de archivo está dentro de la API de C en sí. El código obj c está en un contenedor. Paso el filePath con UTF8String a la función c esperando un char * – jarryd

+0

No sé exactamente lo que estás tratando de lograr, pero sugiero usar el NSFileManager nativo y NSFileHandle, deberían ser buenos para casi cualquier cosa que haga fopen. – Stavash

Respuesta

7

Tiene que convertir el NSString en un char * utilizando el siguiente método, o no se asignará correctamente al archivo sistema.

char const *path_cstr = [[NSFileManager defaultManager] fileSystemRepresentationWithPath:pathString]; 

Ahora puede usarlo directamente en fopen().