Java getCanonicalPath与getAbsolutePath不同-添加/“私人”;
因为我理解了不同,我不理解为什么绝对路径与规范路径不同-在规范路径中,我看到了绝对路径中不存在的前缀Java getCanonicalPath与getAbsolutePath不同-添加/“私人”;,java,scala,Java,Scala,因为我理解了不同,我不理解为什么绝对路径与规范路径不同-在规范路径中,我看到了绝对路径中不存在的前缀/private 我在scala中运行以下代码 object ScalaDemo { def main(args: Array[String]): Unit = { val dir = Files.createTempDirectory("test").toFile println("dir.getPath:" + dir.
/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
,查看是否存在符号链接,但没有找到任何符号链接。我将mac与scala 2.9.1一起使用您不应该在最终路径上运行ls-al
。如果要查找符号链接,则必须从第一个文件夹向下跨步到文件。幸运的是,这个过程很快就结束了,因为ls-la/
产生了以下结果:
lrwxr-xr-x@ 1 root wheel 11 Jan 11 14:16 var -> private/var
这意味着它实际上是一个符号链接,因此规范路径“扩展”了链接。Do
ls-l/var
,/var
指的是private/var
。就像luk2302一样saying@luk2302你说得太对了!我没有想到要检查根文件夹(/var
)-Thanks@DontKnowMuchButGettingBetter我在问题中添加了这个链接,但它没有回答问题