我正在尝试以编程方式挂载一些 WebDAV 和 SMB 共享,并且我想为卷指定默认名称以外的特定名称。例如,如果我安装
我希望它在 Finder 中显示为
/Volumes/My SharePoint Site
或
~/Desktop/My SharePoint Site
代替
/Volumes/grigutis
或
~/Desktop/grigutis
我可以用 mount_webdav 命令做到这一点:
$ mkdir /Volumes/My\ SharePoint\ Site
$ mount_webdav -s -i https://my.sharepoint.school.edu/personal/grigutis /Volumes/My\ SharePoint\ Site
or
$ mkdir ~/Desktop/My\ SharePoint\ Site
$ mount_webdav -s -i https://my.sharepoint.school.edu/personal/grigutis ~/Desktop/My\ SharePoint\ Site
但我无法使用 NetFSMountURLSync 进行此操作(假设我已经创建了目录):
NSURL *url = [NSURL URLWithString:@"https://my.sharepoint.school.edu/personal/grigutis"];
NSURL *mountpath = [NSURL fileURLWithPath:@"/Volumes/My SharePoint Site" isDirectory:YES];
or
NSURL *mountpath = [NSURL fileURLWithPath:[@"~/Desktop/My SharePoint Site" stringByExpandingTildeInPath] isDirectory:YES];
CFArrayRef mountpoints = NULL;
int result = 0;
result = NetFSMountURLSync((__bridge CFURLRef)url,
(__bridge CFURLRef)mountpath,
CFSTR("Kerberos"),
CFSTR("NoPassword"),
NULL,
NULL,
&mountpoints);
如果我尝试安装到 /Volumes/My SharePoint Site,我会看到 Finder 对话框:
'连接到服务器“my.sharepoint.school.edu”时出现问题。您没有访问此服务器的权限。
并且函数返回结果 13(权限被拒绝)。
如果我尝试安装到 ~/Desktop/My SharePoint Site,那么它会像这样安装
~/桌面/我的 SharePoint 站点/grigutis
这不是我想要的。我已经提交了一个关于这个的错误报告。有任何想法吗?如果可能的话,我想避免使用 NSTask 。