Como posso criar um java.nio.file.Pathobjeto a partir de um Stringobjeto no Java 7?
Ou seja,
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
Onde ?está o código ausente que usa textPath.
Como posso criar um java.nio.file.Pathobjeto a partir de um Stringobjeto no Java 7?
Ou seja,
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
Onde ?está o código ausente que usa textPath.
Respostas:
Você pode apenas usar a Pathsclasse:
Path path = Paths.get(textPath);
... supondo que você queira usar o sistema de arquivos padrão, é claro.
Path.get()independente de plataforma? o que significa que Path.get("lib","p2") será como lib\p2no Windows e lib/p2no Linux
Dos javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
é o mesmo 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");
No Windows, cria o arquivo C: \ joe \ logs \ foo.log (assumindo a origem do usuário como C: \ joe)
No Unix, cria o arquivo /u/joe/logs/foo.log (assumindo a origem do usuário como / u / joe)
File.separaratorvez de cuidar do sistema operacional atual. Por exemplo, "/tmp/foo"éFile.separator+"tmp"+File.separator+"foo"
Se possível, eu sugeriria a criação Pathdireta dos elementos do caminho:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
Mesmo quando a pergunta é sobre o Java 7, acho que agrega valor saber que, a partir do Java 11, existe um método estático na Pathclasse que permite fazer isso imediatamente:
Com todo o caminho em uma String:
Path.of("/tmp/foo");
Com o caminho dividido em várias seqüências de caracteres:
Path.of("/tmp","foo");
Paths.get.