有一个带有沙箱环境的项目,现在我想让用户选择一个目录来保存文件。例如,当用户在保存面板中选择“桌面”时,我会将文件保存到目录“〜/桌面”。 代码如下:
NSSavePanel *savePanel = [NSSavePanel savePanel];
NSInteger result = [savePanel runModal];
if(result == NSFileHandlingPanelOKButton)
{
NSString *dir = [savePanel.URL.path.stringByDeletingLastPathComponent stringByAppendingPathComponent:@"2.txt"];
NSError *err;
NSLog(@"%@",dir);
[@"asasasa" writeToFile:dir atomically:YES encoding:NSUTF8StringEncoding error:&err];
NSLog(@"%@",err);
}
发生错误Code=513 "You don’t have permission to save the file “2.txt” in the folder “Desktop”.
我已经在Read/Write
设置中启用了User Selected File
中的Capabilities
。谁能告诉我我现在该怎么办?
谢谢。
答案 0 :(得分:0)
您没有将文件保存到获得许可的URL,而是更改了URL。 不允许。
在保存面板中指定2.txt
,以便您返回的URL为~/Desktop/2.txt
。然后保存即可。
旁注:还有一个与URL相关的API,例如writeToURL:atomically:encoding:error
和URLByAppendingPathComponent: