Java文档Path.resolves()中绝对路径和带有根组件的Path之间的区别

问题描述 投票:0回答:1

我一直在学习Java中的文件系统管理。我在 Path 接口下发现了解析方法的文档。我不明白绝对路径和具有根组件的路径之间的区别。它们不是一样吗?

来自文档:

路径解析(路径其他)

根据此路径解析给定路径。

如果 other 参数是绝对路径,则此方法通常会返回 other。如果 other 是空路径,则此方法将简单地返回该路径。否则,此方法会将此路径视为目录,并根据此路径解析给定路径。在最简单的情况下,给定路径没有根组件,在这种情况下,此方法将给定路径连接到此路径,并返回以给定路径结尾的结果路径。 如果给定路径具有根组件,则分辨率高度依赖于实现,因此未指定。

我以为他们的意思是一样的,就在网上搜索了一下,但什么也没找到。

java file web path
1个回答
0
投票

在 Unix 系统上:是的。当且仅当它具有根组件(始终为“/”)时,路径才是绝对路径。

在 Windows 上,事情变得……丑陋。 有 5(!)种不同类型的路径。 它们是:

  • 绝对路径(根组件看起来像“C:”)
  • 相对路径(根组件为空)
  • 目录相对路径(根组件为“”)
  • 驱动器相对路径(根组件看起来像“C:”)
  • UNC 路径(用于网络访问)

WindowsPath.isAbsolute() 仅将绝对路径和 UNC 路径视为“绝对”

© www.soinside.com 2019 - 2024. All rights reserved.