从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
方法可用于从Path
的String
表示中构造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());