web-dev-qa-db-ja.com

Java.io.FileからJava.nio.file.Pathオブジェクトを取得します

Java.io.FileからPathオブジェクトを取得することは可能ですか?

toFile()メソッドを使用してパスをファイルに変換できることは知っていますが、逆の変換は見つかりませんでした。 Java 6以前でこれを行う方法はありますか?

180
Karlovsky120

はい、 File オブジェクトから File.toPath() を使用して取得できます。これはJava 7+専用であることに注意してください。 Javaバージョン6以下にはありません。

243
Vivin Paliath

ドキュメント から:

通常、デフォルトのproviderに関連付けられているパスは、Java.io.Fileクラスと相互運用可能です。他のプロバイダーによって作成されたパスは、Java.io.Fileで表される抽象パス名と相互運用可能ではありません。 toPathメソッドを使用して、Java.io.Fileオブジェクトで表される抽象パス名からPathを取得できます。結果のPathを使用して、 Java.io.Fileオブジェクトと同じファイルを操作します。 また、toFileメソッドは、FileString表現からPathを構築するのに役立ちます。

(エンファシス鉱山)

したがって、 toFile の場合:

このパスを表すFileオブジェクトを返します。

そして toPath

この抽象パスから構築されたJava.nio.file.Pathオブジェクトを返します。

31
wchargin

おそらく File.toPath() が必要です。

17
hertzsprung

多くの人が示唆しているように、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());
10
dArtagnon