これは簡単なことのように感じますが、File
に変換せずにエレガントな解決策を見つけることができるようです。
与えられたPath
Path path = Paths.get("/a/b/foo")
パスを取得する方法/a/b/foo.bar
? subpath
は、元のパスが相対パスであるか絶対パスであるかに関係なく、相対パスを返します。
追加のライブラリを使用する必要はありません。しかし、多分それが唯一の方法ですか?
Path
のファイル名を変更するには、 resolveSibling()
メソッドのいずれかを使用します。
これは、ファイル名を別のファイル名に置き換える必要がある場合に役立ちます。
このメソッドを使用すると、結果のPath
オブジェクトがソースのFileSystem
オブジェクトと同じ Path
になります。
したがって、拡張子を追加するには".bar"
からPath
:
path = path.resolveSibling(path.getFileName() + ".bar");