2012-01-16 17 views
6

Estoy tratando de abrir un archivo para escribir en él. El archivo puede no existir.iOS crea el archivo

Encontré que [NSFileHandle fileHandleForWritingAtPath:filePath] devuelve nil si el archivo no existe. Habiendo googled, me encontré con fragmentos de código como éste

[[NSData data] writeToFile:filePath atomically:YES] 

cual, supongo, asegura existencia archivo antes de abrirlo.

Mi pregunta es: ¿es la última línea de código la forma recomendada de creación de archivos? Parece extraño que NSFileHandle no tenga una rutina para crear un nuevo archivo (y solo puede tratar con archivos existentes).

Respuesta

14

NSFileHandle puede que no tenga un método para crear un archivo, pero NSFileManager tiene uno. ¿Has mirado esa clase?

Esto funciona muy bien para mí, sin embargo, tenga en cuenta que va a sobrescribir el mismo archivo cada vez

NSString *cachesFolder = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; 
NSString *file = [cachesFolder stringByAppendingPathComponent:@"testfile"];  
[[NSData data] writeToFile:file options:NSDataWritingAtomic error:nil]; 
+0

Qué error. Pasé por alto NSFileManager. De todos modos, gracias por tu esfuerzo. – Nick

Cuestiones relacionadas