Java Nio 绝对路径转相对路径

9
我有一个指向磁盘上文件的路径,例如:C:\folder\dir\dir2\file.txt。如果在代码中处理此文件时出现异常,它将输出整个路径。理想情况下,最好不要打印整个目录,而是像这样../../dir2/file.txt
看起来我应该能够通过java.nio.file relativize方法来实现这个目标,只是不太确定如何操作。
Path file; // C:\folder\dir\di2\file.txt
file.relativize(file.getParent());

我肯定是以错误的方式来解决这个问题,只是不确定如何实现我想要的。

1个回答

12

获取当前工作目录

Path pwd = Paths.get("").toAbsolutePath();

然后对目标路径(Path)进行相对化(relativize)

Path relative = pwd.relativize(target);

我在同一个问题上失败了,但是得到的错误是格式应该为:[smallpath].relativize[longpath] -> file..getParent().relativize(file); - Hazim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接