È 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 Filedall'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
providersono generalmente interoperabili con lajava.io.Fileclasse. È improbabile che i percorsi creati da altri provider siano interoperabili con i nomi di percorsi astratti rappresentati dajava.io.File. IltoPathmetodo 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.Filedell'oggetto. Inoltre, iltoFilemetodo è utile per costruire aFiledallaStringrappresentazione di aPath.
(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.
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());