É possível obter um objeto Path de a java.io.File?
Eu sei que você pode converter um caminho para um arquivo usando o toFile()método, mas não consegui encontrar a conversão oposta. Existe uma maneira de fazer isso no Java 6 ou inferior?
É possível obter um objeto Path de a java.io.File?
Eu sei que você pode converter um caminho para um arquivo usando o toFile()método, mas não consegui encontrar a conversão oposta. Existe uma maneira de fazer isso no Java 6 ou inferior?
Respostas:
Sim, você pode obtê-lo do Fileobjeto usando File.toPath(). Lembre-se de que isso é apenas para Java 7+. As versões Java 6 e abaixo não a possuem.
Pathfoi introduzido no Java 7, então, infelizmente, não há como fazer isso no Java 6 e abaixo.
A partir da documentação :
Os caminhos associados ao padrão
providergeralmente são interoperáveis com ajava.io.Fileclasse. É improvável que os caminhos criados por outros provedores sejam interoperáveis com os nomes de caminho abstratos representados porjava.io.File. OtoPathmétodo pode ser usado para obter um caminho a partir do nome do caminho abstrato representado por um objeto java.io.File. O caminho resultante pode ser usado para operar no mesmo arquivo que ojava.io.Fileobjeto. Além disso, otoFilemétodo é útil para construir aFilepartir daStringrepresentação de aPath.
(ênfase minha)
Então, para toFile:
Retorna um
Fileobjeto que representa esse caminho.
E toPath:
Retorna um
java.nio.file.Pathobjeto construído a partir desse caminho abstrato.
Você provavelmente quer File.toPath().
Como muitos sugeriram, o JRE v1.7 e superior tem File.toPath ();
File yourFile = ...;
Path yourPath = yourFile.toPath();
Na documentação do Oracle jdk 1.7, que também é mencionada em outras postagens acima, o código equivalente a seguir é descrito na descrição do método toPath (), que pode funcionar no JRE v1.6;
File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());