Get java.nio.file.Path object from java.io.File

JavaFilePathJava 6

Java Problem Overview


Is it possible to get a Path object from a java.io.File?

I know you can convert a path to a file using toFile() method, but I couldn't find the opposite conversion. Is there a way to do this in Java 6 or lower?

Java Solutions


Solution 1 - Java

Yes, you can get it from the File object by using File.toPath(). Keep in mind that this is only for Java 7+. Java versions 6 and below do not have it.

Solution 2 - Java

From the documentation:

> Paths associated with the default provider are generally interoperable > with the java.io.File class. Paths created by other providers are > unlikely to be interoperable with the abstract path names represented > by java.io.File. The toPath method may be used to obtain a Path from > the abstract path name represented by a java.io.File object. The > resulting Path can be used to operate on the same file as the > java.io.File object. In addition, the toFile method is useful to > construct a File from the String representation of a Path.

(emphasis mine)

So, for toFile:

> Returns a File object representing this path.

And toPath: > Returns a java.nio.file.Path object constructed from the this abstract path.

Solution 3 - Java

You likely want File.toPath().

Solution 4 - Java

As many have suggested, JRE v1.7 and above has File.toPath();

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

On Oracle's jdk 1.7 documentation which is also mentioned in other posts above, the following equivalent code is described in the description for toPath() method, which may work for JRE v1.6;

File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKarlovsky120View Question on Stackoverflow
Solution 1 - JavaVivin PaliathView Answer on Stackoverflow
Solution 2 - JavawcharginView Answer on Stackoverflow
Solution 3 - JavahertzsprungView Answer on Stackoverflow
Solution 4 - JavadArtagnonView Answer on Stackoverflow