iphone - Documents 目录中的读/写文件问题

标签 iphone objective-c ios nsfilemanager

我正在尝试将一个非常基本的文本字符串写入我的文档目录并从那里开始工作以稍后保存其他文件等。

我目前坚持不在我的文档目录中写入任何内容

(在我的 viewDidLoad 中)

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
NSString *documentsDirectory = [pathArray objectAtIndex:0];

NSString *textPath = [documentsDirectory stringByAppendingPathComponent:@"file1.txt"];
NSString *text = @"My cool text message";

[[NSFileManager defaultManager] createFileAtPath:textPath contents:nil attributes:nil];
[text writeToFile:textPath atomically:NO encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"Text file data: %@",[[NSFileManager defaultManager] contentsAtPath:textPath]);

这是打印出来的:

2011-06-27 19:04:43.485 MyApp[5731:707] Text file data: (null)

如果我尝试这样做,它也会打印出 null:

NSLog(@"My Documents: %@", [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:NULL]);

写入此文件时我遗漏了什么或做错了什么? 可能是我需要在我的 plist 中更改某些内容或需要一些框架/导入?

谢谢

[编辑] 我通过 writeToFile 传递了一个 NSError 对象并得到了这个错误:

Error: Error Domain=NSCocoaErrorDomain Code=512 "The operation couldn’t be completed. (Cocoa error 512.)" UserInfo=0x12aa00 {NSFilePath=/var/mobile/Applications/887F4691-3B75-448F-9384-31EBF4E3B63E/Documents/file1.txt, NSUnderlyingError=0x14f6b0 "The operation couldn’t be completed. Not a directory"}

[编辑 2] 这在模拟器上运行良好,但在我的手机上运行不正常:/

最佳答案

与其使用 NSFileManager 获取该文件的内容,不如尝试使用 NSString:

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
NSString *documentsDirectory = [pathArray objectAtIndex:0];
NSString *textPath = [documentsDirectory stringByAppendingPathComponent:@"file1.txt"];
NSError *error = nil;
NSString *str = [NSString stringWithContentsOfFile:textPath encoding:NSUTF8StringEncoding error:&error];
if (error != nil) {
    NSLog(@"There was an error: %@", [error description]);
} else {
    NSLog(@"Text file data: %@", str);
}

编辑:添加了错误检查代码。

关于iphone - Documents 目录中的读/写文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6496454/

相关文章:

ios - 推送 View 应以透明背景显示

iphone - 检测透明 UIImageview 之间的碰撞

iphone - CTFont 和 Core Text 框架

iphone - 如何在 objective-c 中对 NSMutableArray 进行排序

ios - Objective-C 中的自动引用计数不能防止或最小化什么样的泄漏?

ios - 通过 LinkedIn 共享带等号的链接的问题

iphone - 清理 Objective-C 代码

iphone - iOS - 通过方法返回传递 NSMutableArray

ios - 安装 Xcode 7 后,我无法再构建和运行项目,因为文档无法打开

iOS - 使用搜索关键字启动其他应用程序