这感觉应该是直截了当的事情,但我似乎可以找到一个优雅的解决方案,而无需转换为 File
。
给定一个路径
Path path = Paths.get("/a/b/foo")
如何获取路径/a/b/foo.bar
? subpath
将返回相对路径,无论原始路径是相对路径还是绝对路径。
我宁愿不必使用额外的库。但是,也许这是唯一的方法?
最佳答案
要更改 Path
的文件名,请使用 resolveSibling()
之一方法:
This is useful where a file name needs to be replaced with another file name.
使用此方法可确保结果 Path
对象针对相同的 FileSystem
作为源 Path
对象。
因此,要将扩展名 ".bar"
添加到 Path
:
path = path.resolveSibling(path.getFileName() + ".bar");
关于Java nio : How to add extension to an absolute path?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33273341/