gpt4 book ai didi

java - 测试 Path.relativize() 是否会成功?

转载 作者:行者123 更新时间:2023-11-30 02:53:02 25 4
gpt4 key购买 nike

方法java.nio.file.Path.relativize()将抛出带有一些参数的 IllegalArgumentException

A relative path cannot be constructed if only one of the paths have a root component. Where both paths have a root component then it is implementation dependent if a relative path can be constructed.

例如,在 Windows 上,如果两个参数引用不同驱动器上的路径,该方法可能会失败。

是否有一种与操作系统无关的方法来测试特定参数是否合法,调用Path.relativize()之前,以避免依赖异常来处理非特殊情况吗?

最佳答案

它说它是“依赖于实现”,所以不是,但是做出一些假设,您可以检查它们是否共享相同的根和文件系统。

getRoot()如果路径没有根组件,则返回 null,否则返回 / 对于类似 Linux 的操作系统,例如对于 Windows,C:\。如果另一个路径具有不同的根(例如 D:\),则 relativize() 将失败。

所以,如果 Path对象是相同的 FileSystem ,并且两者都是相对的(getRoot() 返回 null),或者两者具有相同的根组件,relativize() 应该可以正常工作。

不是完美的解决方案,因为我们不知道“实现”的想法,但足够接近?

关于java - 测试 Path.relativize() 是否会成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38063524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com