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

是否有可能从java.io.File获得一个Path对象?

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

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

从文档 :

与默认provider关联的path通常与java.io.File类互操作。 由其他提供者创build的path不可能与由java.io.File表示的抽象path名称互操作。 toPath方法可用于从java.io.File对象表示的抽象path名中获取Path。 可以使用生成的Path对java.io.File对象执行相同的操作。 另外, toFile方法可用于从PathString表示中构造File

(重点是我的)

所以,为了toFile

返回表示此path的File对象。

而且:

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

您可能需要File.toPath()

正如许多人所说,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());