Java nio:如何为绝对路径添加扩展名?

Java nio: How to add extension to an absolute path?

这感觉应该是直截了当的事情,但我似乎可以找到一个优雅的解决方案,而无需转换为 File

给定一个 Path

Path path = Paths.get("/a/b/foo")

如何获取路径/a/b/foo.barsubpath 将 return 相对路径,无论原始路径是相对路径还是绝对路径。

我宁愿不必使用额外的库。但是,也许这是唯一的方法?

要更改 Path 的文件名,请使用 resolveSibling() 方法之一:

This is useful where a file name needs to be replaced with another file name.

使用此方法可确保结果 Path 对象与源 Path 对象相同 FileSystem

因此,要将扩展名 ".bar" 添加到 Path

path = path.resolveSibling(path.getFileName() + ".bar");