从xcode运行时,以下代码返回带有错误代码513(NSFileWriteNoPermissionError)的NSCocoaErrorDomain。

NSError *error;

[[NSFileManager defaultManager]
createDirectoryAtPath:@"/Library/Application Support/myapp"
withIntermediateDirectories:YES
attributes:nil
error:&error];


这是在Mac OS X 10.6.7上,指定的目录不存在,并且我的用户具有管理员权限。

目的是保存用户之间共享的应用程序支持文件。应该没有创建该目录的写权限吗?

最佳答案

不,那是系统的Library文件夹。您需要用户的库,位于“〜/ Library /”。您可以尝试:

[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/myapp"]


要么:

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString * appSupportPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"myapp"];


只是另外一种选择,您还可以从文件管理器获取URL:

NSFileManager * fm = [[NSFileManager alloc] init];
NSArray * urls = [fm URLsForDirectory:NApplicationSupportDirectory inDomains:NSUserDomainMask];
NSURL * appSupportURL = [urls objectAtIndex:0];

关于cocoa - 尝试在/Library/Application Support/中创建新目录时出现NSFileWriteNoPermissionError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6005597/

10-12 22:27