【发布时间】:2017-03-26 20:13:46
【问题描述】:
我已经使用NetFSMountURLSync 和不同的协议(AFP、SMB、NFS 和 NFS(Final cut 协议))实现了网络驱动器安装。下面提到的是我实现它的代码。
示例网址:smb://10.64.104.215/
安装路径示例:file:///Volumes/
NSURL *url = [[NSURL alloc] initWithString:mountURLString];
NSURL *mountpath = [NSURL fileURLWithPath:@"/Volumes/" isDirectory:YES];
CFMutableDictionaryRef mountOpts = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionarySetValue(mountOpts, kNetFSMountAtMountDirKey, CFSTR("MountAtMountDir"));
CFArrayRef mountpoints = NULL;
NSInteger error = NetFSMountURLSync(
(__bridge CFURLRef) url,
(__bridge CFURLRef) mountpath,
NULL,
NULL ,
0,
mountOpts,
&mountpoints);
沙盒模式关闭时可以正常工作,但沙盒模式打开时上面的代码不起作用。根据 Error.h 文件,它将错误返回为 1,即 “Operation not permitted”。我知道沙盒模式有一些限制,但是对于我的应用程序来说,挂载网络驱动器很重要,因为它是我的应用程序的核心功能之一。当沙盒模式打开时,如何实现网络驱动器安装功能。任何帮助表示赞赏。提前致谢。
【问题讨论】: