È 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?
È 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?
Risposte:
Sì, puoi ottenerlo File
dall'oggetto utilizzando File.toPath()
. Tieni presente che questo è solo per Java 7+. Le versioni Java 6 e precedenti non ce l'hanno.
Path
è stato introdotto in Java 7, quindi sfortunatamente non c'è modo di farlo in Java 6 e versioni successive.
Dalla documentazione :
I percorsi associati al valore predefinito
provider
sono generalmente interoperabili con lajava.io.File
classe. È improbabile che i percorsi creati da altri provider siano interoperabili con i nomi di percorsi astratti rappresentati dajava.io.File
. IltoPath
metodo 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 filejava.io.File
dell'oggetto. Inoltre, iltoFile
metodo è utile per costruire aFile
dallaString
rappresentazione di aPath
.
(enfatizzare il mio)
Quindi, per toFile
:
Restituisce un
File
oggetto che rappresenta questo percorso.
E toPath
:
Restituisce un
java.nio.file.Path
oggetto costruito da questo percorso astratto.
Probabilmente vuoi File.toPath()
.
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());