Comment puis-je créer un java.nio.file.Path
objet à partir d'un String
objet dans Java 7?
C'est à dire
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
où ?
est le code manquant qui utilise textPath
.
Comment puis-je créer un java.nio.file.Path
objet à partir d'un String
objet dans Java 7?
C'est à dire
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
où ?
est le code manquant qui utilise textPath
.
Réponses:
Vous pouvez simplement utiliser la Paths
classe:
Path path = Paths.get(textPath);
... en supposant que vous souhaitiez utiliser le système de fichiers par défaut, bien sûr.
Path.get()
indépendant de la plateforme? ce qui signifie que ce Path.get("lib","p2")
sera comme lib\p2
sous Windows et lib/p2
sous linux
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 le fichier C: \ joe \ logs \ foo.log (en supposant que la maison de l'utilisateur est C: \ joe)
Sous Unix, crée le fichier /u/joe/logs/foo.log (en supposant que la maison de l'utilisateur est / u / joe)
File.separarator
au lieu de prendre soin du système d'exploitation actuel. Par exemple, "/tmp/foo"
estFile.separator+"tmp"+File.separator+"foo"
Si possible, je suggère de créer le Path
directement à partir des éléments du chemin:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
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 en Path
classe qui permet de le faire immédiatement:
Avec tout le chemin dans une chaîne:
Path.of("/tmp/foo");
Avec le chemin décomposé en plusieurs chaînes:
Path.of("/tmp","foo");
Paths.get
.