2008-11-25 9 views
16

La demanda de los documentos de iPhone SDK fopen() es un método admitido de acceso a archivos, pero no puedo obtener un identificador de ARCHIVO. Estoy accediendo a un directorio que está incluido en mi proyecto. He intentado fopen "filename", "dir/filename", "./ filename", "./director/archive", "/ dir/filename", todos regresan con un puntero nulo. Algunas personas informan haberlo usado sin problemas, así que estoy seguro de que es algo simple.¿Cómo fopen() en el iPhone?

Respuesta

21

si está tratando de acceder a un archivo dentro de su paquete de aplicaciones, es necesario obtener la ruta completa a la misma: [[NSBundle mainBundle] pathForResource: FILENAME ofType: FILEEXTENSION]

Esto devuelve un NSString, que se puede tirar de un UTF8String de y pasar a fopen .

22

Para que quede claro para abrir un archivo "some.txt" ...

NSString * path = [[NSBundle mainBundle] pathForResource: @"some" ofType: @"txt"]; 
FILE *f = fopen([path cStringUsingEncoding:1],"r"); 
if (f == NULL) NSLog([path stringByAppendingString:@" not found"]); 
+0

respuesta Niza, Cómo ver el contenido de audio después de la apertura. – Warrior

+2

En lugar de '[path cStringUsingEncoding: 1]' también puede usar 'path.UTF8String' – codingFriend1