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

时间:2013-03-19 23:04:57

标签: java file path java-6

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

我知道您可以使用toFile()方法将路径转换为文件,但我无法找到相反的转换。有没有办法在Java 6或更低版本中执行此操作?

4 个答案:

答案 0 :(得分:241)

是的,您可以使用FileFile.toPath()对象获取它。请记住,这仅适用于Java 7+。 Java版本6及更低版本没有它。

答案 1 :(得分:31)

来自the documentation

  

与默认provider相关联的路径通常可互操作   使用java.io.File类。其他提供商创建的路径是   不太可能与所表示的抽象路径名互操作   按java.io.File toPath方法可用于从中获取路径   由java.io.File对象表示的抽象路径名。   结果Path可用于操作与文件相同的文件   java.io.File对象。 此外,toFile方法非常有用   从File的{​​{1}}表示构建String

(强调我的)

所以,toFile

  

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

toPath

  

返回从此抽象路径构造的File对象。

答案 2 :(得分:17)

您可能想要File.toPath()

答案 3 :(得分:10)

正如许多人所建议的那样,JRE v1.7及更高版本具有File.toPath();

File yourFile = ...;
Path yourPath = yourFile.toPath();

在上面其他帖子中也提到的Oracle jdk 1.7 documentation上,toPath()方法的描述中描述了以下等效代码,该方法可能适用于JRE v1.6;

File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());