242

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

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

4

4 に答える 4

323

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

于 2013-03-19T23:08:16.743 に答える
33

ドキュメントから:

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

(強調鉱山)

だから、のためにtoFile

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

そしてtoPath

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

于 2013-03-19T23:09:37.863 に答える
20

あなたはおそらく欲しいですFile.toPath()

于 2013-03-19T23:08:24.660 に答える
10

多くの人が示唆しているように、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());
于 2016-04-07T05:20:46.477 に答える