É 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 File
objeto usando File.toPath()
. Lembre-se de que isso é apenas para Java 7+. As versões Java 6 e abaixo não a possuem.
Path
foi 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
provider
geralmente são interoperáveis com ajava.io.File
classe. É improvável que os caminhos criados por outros provedores sejam interoperáveis com os nomes de caminho abstratos representados porjava.io.File
. OtoPath
mé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.File
objeto. Além disso, otoFile
método é útil para construir aFile
partir daString
representação de aPath
.
(ênfase minha)
Então, para toFile
:
Retorna um
File
objeto que representa esse caminho.
E toPath
:
Retorna um
java.nio.file.Path
objeto 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());