从java.io.File获取java.nio.file.Path对象


215

是否可以从中获取Path对象java.io.File

我知道您可以使用toFile()方法将路径转换为文件,但找不到相反的转换。在Java 6或更低版本中有没有办法做到这一点?


您看过API文档吗?
Vivin Paliath

是的,我看到了resolve和resolveSibling方法,但这并没有完全从文件(或字符串)转换为路径,而是以某种方式对其进行了概括。
Karlovsky120

1
这是@VivinPaliath也暗示的文档
2013年

1
让我感到惊讶的是,最愚蠢的问题(我的意思是,来吧,是在文档中,简短的Google搜索会回答这个问题)使我在该网站上获得了最多的积分。:D
Karlovsky120,2017年

@ Karlovsky120,如果您想自己用Google搜索它,就不要
惊叹

Answers:



33

文档中

与默认值关联的路径provider通常可以与java.io.File该类互操作。其他提供程序创建的路径不太可能与表示的抽象路径名互操作java.io.FiletoPath方法可用于从java.io.File对象表示的抽象路径名中获取路径。生成的路径可用于与java.io.File对象在同一文件上进行操作 。此外,该toFile方法对于File从的String表示构造a很有用Path

(强调我的)

因此,对于toFile

返回File表示此路径的对象。

toPath

返回java.nio.file.Path从此抽象路径构造的对象。


1
他要相反。
Vivin Paliath

我对此表示怀疑:)。我只是在提到OP想要什么。
Vivin Paliath


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());
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.