からPathオブジェクトを取得することは可能java.io.File
ですか?
toFile()
メソッドを使用してパスをファイルに変換できることは知っていますが、逆の変換は見つかりませんでした。Java 6以前でこれを行う方法はありますか?
からPathオブジェクトを取得することは可能java.io.File
ですか?
toFile()
メソッドを使用してパスをファイルに変換できることは知っていますが、逆の変換は見つかりませんでした。Java 6以前でこれを行う方法はありますか?
回答:
はい、をFile
使用してオブジェクトから取得できますFile.toPath()
。これはJava 7以降のみを対象としています。Javaバージョン6以下にはありません。
Path
はJava 7で導入されたため、残念ながらJava 6以下ではこれを行う方法はありません。
ドキュメントから:
デフォルトに関連付けられたパス
provider
は、通常、java.io.File
クラスと相互運用できます。他のプロバイダーによって作成されたパスは、で表される抽象的なパス名と相互運用できない可能性がありjava.io.File
ます。このtoPath
メソッドを使用して、java.io.Fileオブジェクトで表される抽象パス名からパスを取得できます。結果のパスを使用して、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ドキュメントでは、次の同等のコードがtoPath()メソッドの説明に記載されています。これはJRE v1.6で機能する場合があります。
File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());