使用 Java NIO Path 对象:
- 如果我有一个基本路径
b
和一个相对路径r
,要获取完整路径f
,我可以调用b.resolve(r)
。 - 如果我有完整路径
f
和基本路径b
,要获取相对路径r
,我可以调用b.relativize(f)
。 - 但是如果我有
f
和r
,想要找到b
怎么办?
查看 Path
API,我没有看到任何简单/直接的解决方案。我能想到的最好的方法是同时迭代 f
和 r
的 getParent()
,直到 r'
为空/ null,然后 f'
应该是 b
。但这似乎笨拙而低效。
我还尝试了基于f.subpath()
的解决方案,但该方法会剥离根组件(例如C:\
)。
endsWith()
可以告诉我r
是否真正相对于f
,这很有用,但我需要进一步推导出b
。 - Kevin K