2012-01-16 13 views
6

Sto tentando di aprire un file per scriverlo. Il file potrebbe non esistere.iOS crea file

Ho trovato che [NSFileHandle fileHandleForWritingAtPath:filePath] restituisce nil se il file non esiste. Dopo aver cercato su google, ho trovato frammenti di codice come questo

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

che, immagino, garantisce file di esistenza prima di aprirlo.

Le mie domande sono: è la seconda linea di codice consigliata per la creazione di file? Sembra strano che NSFileHandle non abbia una routine per creare un nuovo file (e può gestire solo file esistenti).

risposta

14

NSFileHandle potrebbe non avere un metodo per creare un file, ma NSFileManager ha uno. Hai visto quella lezione?

Questo funziona bene per me, però notare che sovrascrive lo stesso file ogni volta

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

Che un errore. Ho trascurato NSFileManager. Comunque, grazie per il tuo impegno. – Nick