代码之家  ›  专栏  ›  技术社区  ›  NotSoShabby

getCanonicalPath返回不同平台之间的不同路径

  •  0
  • NotSoShabby  · 技术社区  · 8 年前

    我的代码中较低的方法之一是使用 file.getCanonicalPath() 函数(文件定义为 File file = new File("/tmp") ). 这在linux和windows操作系统中有效,但在macOS上,此函数返回以下字符串-“/private/tmp”,即使我在主目录中有一个tmp文件夹,而我没有/private目录。 你知道这个“私有”目录是从哪里来的吗?为什么这个方法不把我引向macOS中的“/tmp”,即使它是可访问的?

    注意:如果我创建一个随机的、不存在的dir文件对象( File file = new File("/random") )它会很好地返回规范路径。

    1 回复  |  直到 8 年前
        1
  •  -1
  •   ᴘᴀɴᴀʏɪᴏᴛɪs    8 年前

    符号链接,也称为软链接,是一种特殊类型的文件 指向另一个文件,很像Windows中的快捷方式或 麦金塔别名。与硬链接不同,符号链接不包含 在文件系统的某个地方。

    在macOS上 /tmp 符号链接到 /private/tmp . 目录 /private 存在并包含 tmp