Czy można uzyskać obiekt Path z java.io.File
?
Wiem, że możesz przekonwertować ścieżkę do pliku za pomocą toFile()
metody, ale nie mogłem znaleźć odwrotnej konwersji. Czy można to zrobić w Javie 6 lub nowszej?
Czy można uzyskać obiekt Path z java.io.File
?
Wiem, że możesz przekonwertować ścieżkę do pliku za pomocą toFile()
metody, ale nie mogłem znaleźć odwrotnej konwersji. Czy można to zrobić w Javie 6 lub nowszej?
Odpowiedzi:
Tak, możesz pobrać go z File
obiektu za pomocą File.toPath()
. Pamiętaj, że dotyczy to tylko Java 7+. Wersje Java 6 i niższe nie mają tego.
Path
został wprowadzony w Javie 7, więc niestety nie można tego zrobić w Javie 6 i niższych.
Z dokumentacji :
Ścieżki powiązane z domyślną
provider
są na ogół interoperacyjne zjava.io.File
klasą. Ścieżki utworzone przez innych dostawców raczej nie będą interoperacyjne z abstrakcyjnymi nazwami ścieżek reprezentowanymi przezjava.io.File
. Metoda może być stosowana w celu uzyskania ścieżki od abstrakcyjnej nazwy ścieżki reprezentowanej przez obiekt java.io.File. Powstała ścieżka może być używana do działania na tym samym pliku, co obiekt. Ponadto metoda jest przydatna do skonstruowania z reprezentacji a .toPath
java.io.File
toFile
File
String
Path
(moje podkreślenie)
Tak więc dla toFile
:
Zwraca
File
obiekt reprezentujący tę ścieżkę.
I toPath
:
Zwraca
java.nio.file.Path
obiekt zbudowany z tej abstrakcyjnej ścieżki.
Prawdopodobnie chcesz File.toPath()
.
Jak wielu sugerowało, JRE w wersji 1.7 i nowszej ma File.toPath ();
File yourFile = ...;
Path yourPath = yourFile.toPath();
W dokumentacji jdk 1.7 Oracle, wspomnianej również w innych postach powyżej, w opisie metody toPath (), która może działać w JRE v1.6, opisano następujący równoważny kod;
File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());