Java.io.File
からPathオブジェクトを取得することは可能ですか?
toFile()
メソッドを使用してパスをファイルに変換できることは知っていますが、逆の変換は見つかりませんでした。 Java 6以前でこれを行う方法はありますか?
はい、 File
オブジェクトから File.toPath()
を使用して取得できます。これはJava 7+専用であることに注意してください。 Javaバージョン6以下にはありません。
ドキュメント から:
通常、デフォルトの
provider
に関連付けられているパスは、Java.io.File
クラスと相互運用可能です。他のプロバイダーによって作成されたパスは、Java.io.File
で表される抽象パス名と相互運用可能ではありません。toPath
メソッドを使用して、Java.io.Fileオブジェクトで表される抽象パス名からPathを取得できます。結果のPathを使用して、Java.io.File
オブジェクトと同じファイルを操作します。 また、toFile
メソッドは、File
のString
表現からPath
を構築するのに役立ちます。
(エンファシス鉱山)
したがって、 toFile
の場合:
このパスを表す
File
オブジェクトを返します。
そして toPath
:
この抽象パスから構築された
Java.nio.file.Path
オブジェクトを返します。
おそらく File.toPath()
が必要です。
多くの人が示唆しているように、JRE v1.7以降にはFile.toPath();があります。
File yourFile = ...;
Path yourPath = yourFile.toPath();
上記の他の投稿でも言及されているOracleの jdk 1.7ドキュメント では、JRE v1.6で機能する可能性のあるtoPath()メソッドの説明に次の同等のコードが記載されています。
File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());