NetFSMountURLSync无法使用自定义安装点?(NetFSMountURLSync not

2019-08-03 14:34发布

我试图以编程方式安装一些WebDAV和SMB共享,​​我想给卷默认值以外的具体名称。 例如,如果我安装

https://my.sharepoint.school.edu/personal/grigutis

我想它出现在Finder作为

/卷/我的SharePoint站点
要么
〜/桌面/我的SharePoint站点

代替

/卷/ grigutis
要么
〜/桌面/ 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);

如果我尝试安装到/卷/我的SharePoint站点,我得到的搜索对话框:

“有连接到服务器‘my.sharepoint.school.edu’的问题。 您没有权限访问此服务器“。

和函数返回结果13(拒绝授权)。

如果我尝试安装到〜/桌面/我的SharePoint站点,然后将其安装这样

〜/桌面/我的SharePoint站点/ grigutis

这不是我想要的。 我已经提交bug报告这件事。 有任何想法吗? 我想如果可能避免NSTask。

Answer 1:

创建挂载点提前,并且使kNetFSMountAtMountDirKey在安装选项的工作原理:

CFMutableDictionaryRef mountOpts = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionarySetValue(mountOpts, kNetFSMountAtMountDirKey, CFSTR("true"));
int ret = NetFSMountURLSync(
    (__bridge CFURLRef) url,
    (__bridge CFURLRef) mountPath,
    NULL,
    NULL,
    0,
    mountOpts,
    &mountPoints
);


Answer 2:

作为一个答案:

还有,你在哪里找到的错误代码是什么意思 ?” - 马特·8月13日在'14 21:15

错误代码可以从文件中读取:/usr/include/sys/errno.h中

也就是说,如果你打开你的终端运行以下命令:

$ cat /usr/include/sys/errno.h | less

这将输出errno.h中的文件,并将其发送给更少,所以可以用导航PgUp和pgdwn键的结果。



文章来源: NetFSMountURLSync not able to use custom mount points?