保存文件时的权限错误(沙盒)(Permissions error when saving file

2019-07-03 10:57发布

我试图将文件保存的路径,在沙盒中的应用[OS X],但到目前为止,我几乎每次我想节省时间,收到一个错误。 该错误是..

Error saving: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “test.txt” in the folder “Testing”." UserInfo=0x1001f5e70 {NSFilePath=/Users/Seb/Desktop/Testing/test.txt, NSUnderlyingError=0x1001f5d70 "The operation couldn’t be completed. Operation not permitted"}

我已经把我的权利的“用户选择文件”,“读/写访问”。

我的代码..

NSString *saveLoc = [NSString stringWithFormat:@"%@/%@.txt",[[NSURL URLWithString:[[NSUserDefaults standardUserDefaults] valueForKey:@"saveURL"]] path],self.theWindow.title];
NSURL *saveURL = [NSURL fileURLWithPath:saveLoc];

NSLog(@"Saving to: %@",saveLoc);

NSError *err = nil;
[self.textView.string writeToURL:saveURL atomically:YES encoding:NSUTF8StringEncoding error:&err];

if (err) {
    NSLog(@"Error saving: %@",err);
    [[NSAlert alertWithError:err] beginSheetModalForWindow:self.theWindow
                                                       modalDelegate:nil
                                                      didEndSelector:NULL
                                                         contextInfo:nil];
}

我究竟做错了什么? 我如何保存文件?

谢谢。

Answer 1:

为了读/写在沙箱外的文件时,你必须得到用户该文件或以上目录的一次访问。 访问可以通过使用获得NSOpenPanelNSSavePanel或拖放。

应用程序终止后,这些文件/目录的访问都将丢失。

为了获得由用户选择的文件/目录永久访问,您必须使用安全作用域书签 。



文章来源: Permissions error when saving file (sandbox)