【发布时间】:2017-10-13 15:20:27
【问题描述】:
据我了解不同的 getPath,getAbsolutePath and getCanonicalPath 我不明白为什么绝对路径与规范路径不同 - 在规范路径中我看到 /private 前缀在绝对路径中不存在
我在 scala 中运行以下代码
object ScalaDemo {
def main(args: Array[String]): Unit = {
val dir = Files.createTempDirectory("test").toFile
println("dir.getPath:" + dir.getPath)
println("dir.getAbsolutePath:" + dir.getAbsolutePath)
println("dir.getCanonicalPath:" + dir.getCanonicalPath)
}
}
我得到了这个输出:
dir.getPath:/var/folders/fq/8q8jpphd2qb2_07p4h2kzn0m0000gn/T/test3084029786797422592
dir.getAbsolutePath:/var/folders/fq/8q8jpphd2qb2_07p4h2kzn0m0000gn/T/test3084029786797422592
dir.getCanonicalPath:/private/var/folders/fq/8q8jpphd2qb2_07p4h2kzn0m0000gn/T/test3084029786797422592
可以看到规范路径有 /private 前缀 - 这是为什么呢?
我还在绝对路径输出上运行ls -al 以查看是否有符号链接但没有找到任何符号链接。我正在使用带有 scala 2.9.1 的 mac
【问题讨论】:
-
做
ls -l /var,/var指的是private/var。就像 luk2302 说的那样 -
@luk2302 你说的太对了!我没想到要检查根文件夹 (
/var) - 谢谢 -
@DontKnowMuchButGettingBetter 我在问题中添加了这个链接,但它没有回答问题