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

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

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

161618 次浏览

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

你可能需要File.toPath()

的文档:

与默认provider相关联的路径通常是可互操作的 java.io.File类。由其他提供程序创建的路径是 不太可能与所表示的抽象路径名互操作 java.io.FiletoPath方法可用于获取的路径 由java.io.File对象表示的抽象路径名。< / >强 的结果路径可用于操作相同的文件 java.io.File对象。此外,toFile方法对 从PathString表示构造一个File

. b

(强调我的)

因此,对于toFile:

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

toPath:

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

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