我正在尝试读取我成功下载并保存在Documents目录中的文件。但是,当我尝试阅读它时,如果失败。
这是错误:
2016-03-28 21:00:26.585 App[569:4103] Path is /var/mobile/Applications/3AFA2430-C0DC-44CD-95F8-A89D82B2C348/Documents/combo.bin
2016-03-28 21:00:26.603 App[569:4103] Error in reading Error Domain=NSCocoaErrorDomain Code=257 "The operation couldn’t be completed. (Cocoa error 257.)" UserInfo=0x17df29d0 {NSFilePath=/var/mobile/Applications/3AFA2430-C0DC-44CD-95F8-A89D82B2C348/Documents/combo.bin, NSUnderlyingError=0x17df90b0 "The operation couldn’t be completed. Permission denied"}
这是我的代码:
NSError *error;
NSData *firmwareContentData = [NSData dataWithContentsOfFile:FIRMWARE_LOCAL_PATH options:NSDataReadingMappedIfSafe error:&error];
NSLog(@"Path is %@", FIRMWARE_LOCAL_PATH);
if(error)
{
NSLog(@"Error in reading %@", error);
return;
}
本地路径
#define FIRMWARE_LOCAL_PATH [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"combo.bin"]
我尝试使用NSTemporaryDirectory(),使用NSFileManager获取文件的内容,但它们都不起作用。知道为什么吗?提前谢谢!
答案 0 :(得分:1)
您有权限错误。您没有权限打开该文件。无论你从哪里得到它,你都被锁定了。您可以尝试在模拟器中下载它,并通过Apple的文件系统进行检查,以查看它实际下载的权限。路径是:
〜/库/开发商/ CoreSimulator /设备//数据/容器/数据/应用程序//文档。
将两个大的随机字符串替换为显示今天的mod日期的目录,或者NSLog从iOS应用程序中获取真实路径。