我一直在学习 Java 中的文件系统管理。我偶然发现了 Path 接口下的 resolve 方法的文档。我不明白路径是绝对路径和具有根组件之间的区别。它们不一样吗?
来自文档:
路径解析(路径其他)
根据此路径解析给定的路径。
如果 other 参数是绝对路径,则此方法将返回 other。如果 other 是空路径,则此方法将返回此路径。否则,此方法将此路径视为目录,并根据此路径解析给定路径。在最简单的情况下,给定路径没有根组件,在这种情况下,此方法将给定路径连接到此路径并返回以给定路径结尾的结果路径。如果给定路径具有根组件,则解析高度依赖于实现,因此未指定。
我以为它们的意思是一样的,并在网上搜索,但没有找到任何结果。
在 Unix 系统上:是的。当且仅当路径具有根组件(始终为“/”)时,该路径才是绝对路径。
在 Windows 上,情况变得……糟糕。有 5 种不同类型的路径。它们是:
只有绝对路径和 UNC 路径才被WindowsPath .isAbsolute()视为“绝对”