我有一篇关于 using 的好文章startAccessingSecurityScopedResource
,但根据评论,问题似乎是请求的目录不正确。
当需要时,您可以轻松地在 Cocoa 风格和 POSIX API 之间进行切换。当您需要时,这样做应该没有真正的问题。您应该始终使用 的URLsForDirectory
方法[NSFileManager defaultManager]
来获取用户特定的目录,因为它们可能与您期望的不同。
您应该使用类似于:
NSString *desktopDir = nil;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *urls = [fileManager URLsForDirectory:NSDesktopDirectory inDomains:NSUserDomainMask];
if ([urls count] > 0) {
NSURL *desktopURL = [urls objectAtIndex:0];
NSLog(@"%@", desktopURL);
desktopDir = desktopURL.path;
}
if (desktopDir != nil) {
NSString *xx = [desktopDir stringByAppendingPathComponent:@"/XXX"];
mkdir(xx.UTF8String, 0755);
}