Pobierz obiekt java.nio.file.Path z pliku java.io.File
215
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?
Tak, widziałem metody resol i resolSibling, ale to nie dokładnie przekonwertowało z pliku (lub łańcucha) na ścieżkę, ale raczej w pewien sposób je podsumowało.
Zaskakuje mnie, jak najgłupsze możliwe pytanie (to znaczy, daj spokój, było w dokumentacji, odpowiedziałoby na to krótkie wyszukiwanie w Google) daje najwięcej punktów na stronie. : D
Karlovsky120,
@ Karlovsky120 nie powinno cię dziwić, gdybyś sam spróbował google;)
9ilsdx 9rvj 0lo
Odpowiedzi:
288
Tak, możesz pobrać go z Fileobiektu za pomocą File.toPath(). Pamiętaj, że dotyczy to tylko Java 7+. Wersje Java 6 i niższe nie mają tego.
Ścieżki powiązane z domyślną providersą na ogół interoperacyjne z java.io.Fileklasą. Ścieżki utworzone przez innych dostawców raczej nie będą interoperacyjne z abstrakcyjnymi nazwami ścieżek reprezentowanymi przez java.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 .toPathjava.io.FiletoFileFileStringPath
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;
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.źródło
Path
został wprowadzony w Javie 7, więc niestety nie można tego zrobić w Javie 6 i niższych.Z dokumentacji :
(moje podkreślenie)
Tak więc dla
toFile
:I
toPath
:źródło
Prawdopodobnie chcesz
File.toPath()
.źródło
Jak wielu sugerowało, JRE w wersji 1.7 i nowszej ma File.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;
źródło