2

我正在使用连接到 Google Chrome 应用程序的 THEOS 对 iPhone 进行调整。部分调整功能是使用 ASIHTTPRequest/ASINetworkQueue 处理下载和保存文件。用户可以自由选择和设置下载目的地。只要我将下载路径设置为“/tmp”或 Google Chrome 文档文件夹,它就可以正常工作。当我尝试选择其他文件夹时,例如“/var/mobile/Documents/”,我没有收到权限错误:

Domain=NSCocoaErrorDomain Code=513 "操作无法完成。(Cocoa 错误 513.)" UserInfo=0x1f53e230 {NSFilePath=/var/mobile/Documents, NSUnderlyingError=0x1f53b3d0 "操作无法完成。操作不允许

我查看了这个错误并尝试了 StackExchange 上建议的所有其他答案,但无济于事。

我正在为 IOS 6 开发,我将在这里阅读的答案作为链接包含在内,以防你们认为我错过了一些东西:

1 -如何制作iOS目录?

2 - iphone在沙箱外创建文件夹

3 -未创建 Cydia 应用程序文档文件夹

4 -在 iOS 上为 NSFileManager 获得 root 权限(越狱)

最后一个链接是指以 root 身份运行应用程序以访问非移动目录,但不确定这是否合适,因为我只是对 Chrome 进行了调整。

我希望有人可以帮助我解决这个问题或为我指明正确的方向。我在扯头发。

这是一个用于创建对我不起作用的目录的通用代码片段:

NSString* SaveDir = @"/var/mobile/Documents/Test";
NSFileManager* fileManager = [NSFileManager defaultManager];

NSMutableDictionary* attributes = [[NSMutableDictionary alloc] init];
NSNumber* permission = [NSNumber numberWithLong: 0755];
[attributes setObject:permission forKey: NSFilePosixPermissions];
NSError* error = nil;
if (![fileManager createDirectoryAtPath: SaveDir 
            withIntermediateDirectories: YES       
                             attributes: attributes 
                                  error: &error]) 
{
    NSLog(@"Unable to create data directory: %@", error);
}
[attributes release];

提前谢谢你们

4

1 回答 1

2

我对 Bigboss 的 Cocoanuts Sandcastle 的注释是正确的。我已经链接到 Sandcastle dylib 并使用它的方法我能够在沙箱之外创建文件/目录。

另一个库是 H2Co3 Unbox,它允许做同样的事情,唯一的区别是 unbox 命令由守护进程执行。

于 2013-03-28T23:07:53.780 回答