解决什么路径解决了SymlinksInPath()错误?

时间:2017-03-26 16:00:42

标签: macos symlink nsurl foundation

在macOS上,/ tmp是/ private / tmp的符号链接,但是当我这样做时:

URL(fileURLWithPath: "/tmp").resolvingSymlinksInPath().path

返回"/tmp"

(我已向苹果公司报告此事,他们将其作为副本关闭,因此他们已经知道了。)

是否公开知道哪种路径具有此方法返回的错误值?如果它只是几条内部硬编码的路径,那么检查它们会比从头重写一个有效的resolvingSymlinksInPath()更容易。

1 个答案:

答案 0 :(得分:1)

请参阅resolvingSymlinksInPath的文档:

  

如果接收路径的名称以/ private开头,则此属性会剥离/ private指示符,前提是结果是现有文件的名称。

因此,如果结果是/private/var并且有/var那么这就是返回的内容。

这似乎仅基于约定,没有检查结果路径是否引用相同的文件系统项。例如。创建/a/private/a和sym链接/test/private/a然后解析/test的符号链接,结果为/a尽管不相同作为/private/a