【发布时间】:2015-07-21 00:08:12
【问题描述】:
通常,路径会忽略它包含的所有.(此目录)。因此,c:\\personal\\.\\photos\\readme.txt 和 c:\\personal\\photos\\readme.txt 应该针对不同的操作给出相同的结果,但是在下面的代码中,规范化的路径会给出不同的结果。谁能解释一下这是什么原因?
Path p1 = Paths.get("c:\\personal\\.\\photos\\readme.txt");
Path p2 = Paths.get("c:\\personal\\index.html");
Path p3 = p1.relativize(p2);
System.out.println(p3);
p1 = p1.normalize();
p2 = Paths.get("c:\\personal\\index.html");
p3 = p1.relativize(p2);
System.out.println(p3);
输出:
..\..\..\index.html
..\..\index.html
【问题讨论】:
-
我刚刚用 Java 11 运行它,输出是 2 倍 ..\..\index.html ¯_(ツ)_/¯