【问题标题】:How to create file system root Path?如何创建文件系统根路径?
【发布时间】:2023-02-20 01:48:19
【问题描述】:

如何以独立于系统的方式使用 Paths.get 创建根路径? Paths.get("/") 不是我要找的,因为它使用了硬编码的路径分隔符,而 Paths.get("") 没有给我我需要的。

【问题讨论】:

  • 这回答了你的问题了吗? Platform independent paths in Java
  • Windows 没有根路径。它有驱动器,其中可能有多个。在 Windows 上没有直接等同于 /
  • 稍微扩展一下@SilvioMayolo 所说的内容:在 Windows 中,/ 对应于当前卷的根目录。例如,如果您在 C: 驱动器上的文件夹中打开命令提示符,然后运行 ​​cd /,它将带您到 C:/。这绝不等同于 Linux,但这只是因为文件系统的工作方式不同。
  • 你到底想做什么?
  • Path root = FileSystems.getDefault().getRootDirectories().iterator().next(); 或者,也许更简单,Path root = Path.of(System.getProperty("os.name").contains("Windows") ? "C:\\" : "/");

标签: java


【解决方案1】:
Paths.get("").toAbsolutePath().getRoot();

【讨论】:

  • 如果当前驱动器不是 C: 驱动器,则可能不会表现出所需的行为。
  • @VGR 对于 linux 系统很容易知道他所说的 root 是什么意思但是对于 windows 我不确定他是指基于特定路径的 root 还是 root 意味着安装了 windows 的驱动器注意 windows 可以安装在不同的驱动器中所以抱歉如果我不明白他的意思,谢谢你的评论,祝你有愉快的一天:)
  • 您能否为此添加一些文字来解释为什么这是解决方案?未来的读者可能会发现这很有帮助。
猜你喜欢
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
相关资源
最近更新 更多