web-dev-qa-db-fra.com

Obtenez un objet Java.nio.file.Path à partir de Java.io.File

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?

185
Karlovsky120

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.

256
Vivin Paliath

De la documentation :

Les chemins associés à la valeur par défaut provider sont généralement interopérables avec la classe Java.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 par Java.io.File. La méthode toPath 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’objet Java.io.File. De plus, la méthode toFile est utile pour construire un File à partir de la représentation String d'un Path.

(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.

31
wchargin

Vous voulez probablement File.toPath() .

17
hertzsprung

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());
10
dArtagnon