iOS - 无法读取位于文档目录中的文件

时间:2016-03-28 13:05:56

标签: ios

我正在尝试读取我成功下载并保存在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获取文件的内容,但它们都不起作用。知道为什么吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

您有权限错误。您没有权限打开该文件。无论你从哪里得到它,你都被锁定了。您可以尝试在模拟器中下载它,并通过Apple的文件系统进行检查,以查看它实际下载的权限。路径是:

〜/库/开发商/ CoreSimulator /设备//数据/容器/数据/应用程序//文档。

将两个大的随机字符串替换为显示今天的mod日期的目录,或者NSLog从iOS应用程序中获取真实路径。