242

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

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

4

4 回答 4

323

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

于 2013-03-19T23:08:16.743 回答
33

文档中

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

(强调我的)

所以,对于toFile

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

并且toPath

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

于 2013-03-19T23:09:37.863 回答
20

你可能想要File.toPath().

于 2013-03-19T23:08:24.660 回答
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());
于 2016-04-07T05:20:46.477 回答