2012-01-16 36 views
6

Tôi đang cố mở một tệp để ghi vào đó. Tệp có thể không tồn tại.iOS tạo tập tin

Tôi thấy rằng [NSFileHandle fileHandleForWritingAtPath:filePath] trả về nil nếu tệp không tồn tại. Có googled, tôi thấy đoạn mã như thế này

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

đó, tôi đoán, đảm bảo sự tồn tại tập tin trước khi mở nó.

Câu hỏi của tôi là: cách viết mã được đề xuất sau này có được đề xuất không? Có vẻ lạ rằng NSFileHandle không có thói quen để tạo một tệp mới (và chỉ có thể xử lý các tệp hiện có).

Trả lời

14

NSFileHandle có thể không có phương pháp tạo tệp nhưng NSFileManager có một tệp. Bạn đã xem lớp đó chưa?

này hoạt động tốt đối với tôi, tuy nhiên lưu ý rằng nó sẽ ghi đè lên tập tin giống nhau mỗi lần

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

Thật là một sai lầm ngớ ngẩn. Tôi đã bỏ qua NSFileManager. Dù sao, cảm ơn cho nỗ lực của bạn. – Nick

Các vấn đề liên quan