我有一个原始文件,路径是
我通过使用标准/推荐的
/path/to/foo.txt
,还有一个符号链接/other/path/to/foo.txt
指向它。我删除了/path/to/foo.txt
,但保留了符号链接。如何使用Cocoa APIs判断符号链接是否仍然存在?
我通过使用标准/推荐的
FileManager.fileExists(atPath:)
方法找到了答案。对于不熟悉该API的人来说,问题在于它会遍历符号链接。因此,当我执行以下操作时:FileManager.default.fileExists(atPath: "/other/path/to/foo.txt")
它返回 false
,因为它看到我给了它一个符号链接并解析了它,然后发现在已解析的路径上没有文件。
正如文档所说:
如果应用程序无法访问路径
path
上的文件,可能是因为一个或多个父目录不可访问,此方法将返回false
。 如果path
中的最后一个元素指定一个符号链接,则此方法会遍历该链接,并根据链接目标处的文件是否存在返回true
或false
。
在 FileManager
中似乎没有其他选择。 因此,我想知道是否可以调用 Cocoa API 来判断符号链接是否存在,否则我将不得不使用 C 或 Bash API。