web-dev-qa-db-ja.com

Java.nio.Pathからパス文字列を取得する方法は?

詳細情報で質問を書き直しました

次のように、相対パスを使用してPathオブジェクトを作成するコードがあります:Paths.get("..", "folder").resolve("filename")。後で、そこからパス文字列 "..\folder\filename"を取得したい(Windowsを使用しているため、バックスラッシュが必要です)。手動コンパイルまたはEclipseを使用してこのコードを実行すると、正常に機能します。

ただし、Mavenを使用して実行すると、機能しなくなります。 toString()メソッドは、実際のパス文字列の代わりに_[.., folder, filename]_を返します。 path.normalize()を使用しても役に立ちません。 path.toFile().getPath()を使用すると、探しているものが返されますが、_nio.path_ APIのみを使用した解決策があるはずです。

30
Jorn

使用する:

Paths.get(...).normalize().toString()

別の解決策は次のとおりです。

Paths.get(...).toAbsolutePath().toString()

ただし、奇妙な結果が得られます。Paths.get("/tmp", "foo").toString()はここで/tmp/fooを返します。あなたのファイルシステムは何ですか?

40
fge