使用Nio.Relatizize进行归一化路径



通常,路径忽略了它包含的所有.(此目录)。因此,c:\personal\.\photos\readme.txtc:\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

路径类本身并不忽略 \。默认情况下。当您通过justranize()明确询问时,就会发生这种情况。在Path的Relativize方法上的Oracle文档中例如,如果此路径为"/a/b",并且给定的路径为"/a/x",则结果相对路径可能是" ../x ".th/em>

因此,答案可能是,默认情况下,路径不会丢弃 \。。与Oracle文档结果一起您看到的输出。

最新更新