web-dev-qa-db-ja.com

Java 7で文字列からパスを作成する

Java 7でStringオブジェクトから Java.nio.file.Path オブジェクトを作成する方法を教えてください。

すなわち.

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

ここで?は、textPathを使用する欠けているコードです。

236
mat_boy

Paths クラスを使うことができます。

Path path = Paths.get(textPath);

...もちろん、デフォルトのファイルシステムを使いたいと仮定します。

386
Jon Skeet

Javadocから.. 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とします)

15

可能であれば、path要素から直接Pathを作成することをお勧めします。

Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
8
sevenforce

質問がJava 7に関するものであっても、Java 11以降では、これをすぐに実行できる静的メソッドがPathクラスにあります。

すべてのパスを1つの文字列にまとめます。

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

パスはいくつかの文字列に分割されています。

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

2
Arcones