在Java7中从String创建路径

mat*_*boy 265 string nio path java-7

如何在Java 7中java.nio.file.PathString对象创建对象?

String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
Run Code Online (Sandbox Code Playgroud)

?丢失的代码在哪里使用textPath.

Jon*_*eet 434

你可以使用这个Paths类:

Path path = Paths.get(textPath);
Run Code Online (Sandbox Code Playgroud)

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

  • @KasunSiyambalapitiya:是的,这样应该没问题。 (2认同)

Kar*_*nan 15

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

Path p1 = Paths.get("/tmp/foo"); 
Run Code Online (Sandbox Code Playgroud)

是相同的

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"); 
Run Code Online (Sandbox Code Playgroud)

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

  • 我建议使用`File.separarator`而不是处理当前的操作系统.例如`"/ tmp/foo"`是`File.separator +"tmp"+ File.separator +"foo"` (6认同)

sev*_*rce 10

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

Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
Run Code Online (Sandbox Code Playgroud)


Arc*_*nes 9

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

在一个字符串中包含所有路径:

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

路径分解为几个字符串:

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

  • 最后他们提供了这个方法! (3认同)