web-dev-qa-db-ja.com

Java nio:絶対パスに拡張子を追加する方法は?

これは簡単なことのように感じますが、Fileに変換せずにエレガントな解決策を見つけることができるようです。

与えられたPath

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

パスを取得する方法/a/b/foo.barsubpathは、元のパスが相対パスであるか絶対パスであるかに関係なく、相対パスを返します。

追加のライブラリを使用する必要はありません。しかし、多分それが唯一の方法ですか?

15
jm1234567890

Pathのファイル名を変更するには、 resolveSibling() メソッドのいずれかを使用します。

これは、ファイル名を別のファイル名に置き換える必要がある場合に役立ちます。

このメソッドを使用すると、結果のPathオブジェクトがソースのFileSystemオブジェクトと同じ Path になります。

したがって、拡張子を追加するには".bar"からPath

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