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


215

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

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


あなたはAPIドキュメントを見ましたか?
Vivin Paliath 2013年

はい、resolveメソッドとresolveSiblingメソッドを確認しましたが、ファイル(または文字列)からパスに正確に変換するのではなく、ある方法で連結しました。
Karlovsky120 2013年

1
@VivinPaliathがほのめかしているドキュメントもここにあります。
Perception 2013年

1
馬鹿げた質問(つまり、ドキュメントにありました。短いgoogle searchが答えていたでしょう)がサイトで最も多くのポイントを獲得していることに、私は驚かされます。:D
Karlovsky120 2017年

@ Karlovsky120自分でググってみても驚かないはず;)
9ilsdx 9rvj 0lo

回答:



33

ドキュメントから:

デフォルトに関連付けられたパス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この抽象パスから構築されたオブジェクトを返します。


1
彼は反対を望んでいます。
Vivin Paliath 2013年

私はそれについて論争しません:)。私はただOPが何を望んでいるかに言及していました。
Vivin Paliath 2013年


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());
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.