Java 7のjava.nio.file.Path
オブジェクトからオブジェクトを作成するにはどうすればよいString
ですか?
すなわち
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
どこ?
その用途欠落しているコードがありますtextPath
。
Java 7のjava.nio.file.Path
オブジェクトからオブジェクトを作成するにはどうすればよいString
ですか?
すなわち
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
どこ?
その用途欠落しているコードがありますtextPath
。
回答:
Path.get()
プラットフォームに依存しませんか?WindowsとLinuxのPath.get("lib","p2")
場合と同様の意味lib\p2
lib/p2
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と想定)
File.separarator
現在のOSを処理する代わりに使用することをお勧めします。例えば、"/tmp/foo"
あるFile.separator+"tmp"+File.separator+"foo"
可能であればPath
、パス要素から直接作成することをお勧めします:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
Java 7に関する質問であっても、Java 11以降、Path
クラスに静的メソッドがあり、これをすぐに実行できることを知っておくと価値があると思います。
すべてのパスを1つの文字列に含めます。
Path.of("/tmp/foo");
パスをいくつかの文字列に分解すると:
Path.of("/tmp","foo");
Paths.get
。