2013-03-19 11 views
135

Czy można uzyskać obiekt Path od obiektu java.io.File?Pobierz obiekt java.nio.file.Path z pliku java.io.File

Wiem, że można przekonwertować ścieżkę do pliku przy użyciu metody toFile(), ale nie można znaleźć odwrotnej konwersji. Czy jest sposób na to zrobić w Java 6 lub niższej?

+0

Haev zajrzałeś do dokumentacji API? –

+0

Tak, widziałem metody resolve and resolveSibling, ale to nie dokładnie konwertowało z pliku (lub ciągu znaków) na ścieżkę, ale raczej je potwierdziło. – Karlovsky120

+1

Oto [dokumentacja] (http://docs.oracle.com/javase/7/docs/api/java/io/File.html#toPath()) @VivinPaliath również. – Perception

Odpowiedz

173

Tak, można go uzyskać z obiektu File za pomocą File.toPath(). Należy pamiętać, że jest to tylko dla Javy 7+. Java w wersjach 6 i starszych go nie ma.

+1

Czy jest sposób na osiągnięcie tego w Java 6 lub niższej wersji? – Karlovsky120

+4

'Path' został wprowadzony w Javie 7, więc niestety nie ma sposobu, aby to zrobić w Javie 6 i poniżej. –

29

Od the documentation:

Ścieżki związane z domyślnym provider są ogólnie interoperacyjne z klasą java.io.File. Ścieżki utworzone przez innych dostawców nie są prawdopodobnie interoperacyjne z abstrakcyjnymi nazwami ścieżek reprezentowanymi przez przez java.io.File. Metoda toPath może być używana do uzyskania ścieżki od abstrakcyjnej ścieżki reprezentowanej przez obiekt java.io.File. Ścieżka wynikowa może być używana do działania na tym samym pliku, co obiekt java.io.File. Ponadto, metoda toFile jest przydatna dla skonstruowania File z String reprezentacji Path.

(Kopalnia nacisk)

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żce.

+1

On chce czegoś przeciwnego. –

+3

@Vivin Interfejs API zapewnia zarówno ... – wchargin

+0

Nie kwestionuję tego :). Właśnie wspomniałem o tym, czego chciał PO. –

5

Jak wielu sugerowało, JRE v1.7 i wyżej ma File.toPath();

File yourFile = ...; 
Path yourPath = yourFile.toPath(); 

Na Oracle jdk 1.7 documentation co zostało zaznaczone na innych stanowiskach powyżej, następujący równoważnik kod jest opisany w opisie toPath() sposobu, który może działać na JRE v1.6;

File yourFile = ...; 
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath()); 
Powiązane problemy