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?
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?
 
    
     
    
    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.
 
    
     
    
    From the documentation:
Paths associated with the default
providerare generally interoperable with thejava.io.Fileclass. Paths created by other providers are unlikely to be interoperable with the abstract path names represented byjava.io.File. ThetoPathmethod 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 thejava.io.Fileobject. In addition, thetoFilemethod is useful to construct aFilefrom theStringrepresentation of aPath.
(emphasis mine)
So, for toFile:
Returns a
Fileobject representing this path.
And toPath:
Returns a
java.nio.file.Pathobject constructed from the this abstract path.
 
    
    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());
