web-dev-qa-db-fra.com

Créer un chemin depuis String en Java 7

Comment créer un objet Java.nio.file.Path à partir d'un objet String dans Java 7?

C'est à dire.

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

où _?_ est le code manquant qui utilise textPath.

254
mat_boy

Vous pouvez simplement utiliser la classe Paths :

Path path = Paths.get(textPath);

... en supposant que vous souhaitiez utiliser le système de fichiers par défaut, bien sûr.

411
Jon Skeet

Depuis les javadocs .. http://docs.Oracle.com/javase/tutorial/essential/io/pathOps.html

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

est le même que

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"); 

Sous Windows, crée un fichier C:\joe\logs\foo.log (en supposant que l'utilisateur à la maison est C:\joe)
Sous Unix, crée un fichier /u/joe/logs/foo.log (en supposant que l'utilisateur à la maison est/u/joe)

15
Karthik Karuppannan

Si possible, je suggérerais de créer la Path directement à partir des éléments de chemin:

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

Même lorsque la question concerne Java 7, je pense que cela ajoute de la valeur de savoir qu'à partir de Java 11, il existe une méthode statique dans la classe Path qui permet de le faire. ceci tout de suite:

Avec tout le chemin en une chaîne:

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

Avec le chemin décomposé en plusieurs chaînes:

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

3
Arcones