Est-il possible d'obtenir un objet Path à partir d'un Java.io.File
?
Je sais que vous pouvez convertir un chemin en fichier à l'aide de la méthode toFile()
, mais je n'ai pas trouvé la conversion opposée. Existe-t-il un moyen de le faire dans Java 6 ou inférieur?
Oui, vous pouvez l'obtenir à partir de l'objet File
en utilisant File.toPath()
. Gardez à l'esprit que cela ne concerne que Java 7+. Java les versions 6 et inférieures ne l'ont pas.
De la documentation :
Les chemins associés à la valeur par défaut
provider
sont généralement interopérables avec la classeJava.io.File
. Les chemins créés par d'autres fournisseurs ont peu de chances d'être interopérables avec les noms de chemin abstraits représentés parJava.io.File
. La méthodetoPath
peut être utilisée pour obtenir un chemin à partir du nom de chemin abstrait représenté par un objet Java.io.File. Le chemin résultant peut être utilisé pour opère sur le même fichier que l’objetJava.io.File
. De plus, la méthodetoFile
est utile pour construire unFile
à partir de la représentationString
d'unPath
.
(c'est moi qui souligne)
Donc, pour toFile
:
Retourne un objet
File
représentant ce chemin.
Et toPath
:
Retourne un objet
Java.nio.file.Path
construit à partir de ce chemin abstrait.
Vous voulez probablement File.toPath()
.
Comme beaucoup l'ont suggéré, JRE version 1.7 et ultérieure a File.toPath ();
File yourFile = ...;
Path yourPath = yourFile.toPath();
Sur la documentation de jdk 1.7 d'Oracle qui est également mentionnée dans d'autres publications ci-dessus, le code équivalent suivant est décrit dans la description de la méthode toPath (), qui peut fonctionner pour JRE v1.6;
File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());