330

如何java.nio.file.PathStringJava 7 中的对象创建对象?

IE

String textPath = "c:/dir1/dir2/dir3";
Path path = ?;

使用. ?_textPath

4

4 回答 4

541

您可以只使用Paths该类:

Path path = Paths.get(textPath);

...当然,假设您要使用默认文件系统。

于 2013-06-04T13:45:22.773 回答
23

从 javadocs.. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html

Path p1 = Paths.get("/tmp/foo"); 

是相同的

Path p4 = FileSystems.getDefault().getPath("/tmp/foo");

Path p3 = Paths.get(URI.create("file:///Users/joe/FileTest.java"));

Path p5 = Paths.get(System.getProperty("user.home"),"logs", "foo.log"); 

在 Windows 中,创建文件 C:\joe\logs\foo.log(假设用户主目录为 C:\joe)
在 Unix 中,创建文件 /u/joe/logs/foo.log(假设用户主目录为 /u/joe)

于 2013-09-11T21:57:06.737 回答
16

如果可能的话,我建议Path直接从路径元素创建:

Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
于 2015-09-27T15:26:14.780 回答
12

即使问题是关于 Java 7 的,我认为从 Java 11 开始,知道在Path类中有一个静态方法可以立即执行此操作会增加价值:

一个字符串中的所有路径:

Path.of("/tmp/foo");

将路径分解为几个字符串:

Path.of("/tmp","foo");

于 2019-01-03T11:36:27.777 回答