Ottieni l'oggetto java.nio.file.Path da java.io.File


215

È possibile ottenere un oggetto Path da un java.io.File?

So che puoi convertire un percorso in un file usando il toFile()metodo, ma non sono riuscito a trovare la conversione opposta. C'è un modo per farlo in Java 6 o versioni precedenti?


Hai mai guardato la documentazione API?
Vivin Paliath,

Sì, ho visto i metodi di risoluzione e risoluzione dei fratelli, ma ciò non ha esattamente convertito da file (o stringa) in percorso, ma piuttosto lo ha conciso in un certo modo.
Karlovsky,

1
Ecco la documentazione che anche @VivinPaliath allude.
Percezione

1
Mi stupisce come la domanda più stupida possibile (voglio dire, dai, era nella documentazione, una breve ricerca su Google avrebbe risposto) mi sta facendo il maggior numero di punti sul sito. : D
Karlovsky120,

@ Karlovsky120 non dovrebbe
stupirti se provassi a cercarlo

Risposte:


288

Sì, puoi ottenerlo Filedall'oggetto utilizzando File.toPath(). Tieni presente che questo è solo per Java 7+. Le versioni Java 6 e precedenti non ce l'hanno.


1
C'è un modo per raggiungere questo obiettivo in Java 6 o versioni precedenti?
Karlovsky,

8
Pathè stato introdotto in Java 7, quindi sfortunatamente non c'è modo di farlo in Java 6 e versioni successive.
Vivin Paliath,

33

Dalla documentazione :

I percorsi associati al valore predefinito providersono generalmente interoperabili con la java.io.Fileclasse. È improbabile che i percorsi creati da altri provider siano interoperabili con i nomi di percorsi astratti rappresentati da java.io.File. Il toPathmetodo può essere utilizzato per ottenere un percorso dal nome percorso astratto rappresentato da un oggetto java.io.File. Il percorso risultante può essere utilizzato per operare sullo stesso file java.io.Filedell'oggetto. Inoltre, il toFilemetodo è utile per costruire a Filedalla Stringrappresentazione di a Path.

(enfatizzare il mio)

Quindi, per toFile:

Restituisce un Fileoggetto che rappresenta questo percorso.

E toPath:

Restituisce un java.nio.file.Pathoggetto costruito da questo percorso astratto.


1
Vuole il contrario.
Vivin Paliath,

Non lo contesto :). Stavo solo citando ciò che voleva l'OP.
Vivin Paliath,


10

Come molti hanno suggerito, JRE v1.7 e versioni successive hanno File.toPath ();

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

Sulla documentazione di Oracle jdk 1.7 che è menzionata anche in altri post precedenti, il seguente codice equivalente è descritto nella descrizione del metodo toPath (), che può funzionare con JRE v1.6;

File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.