Можно ли получить объект Path от a java.io.File
?
Я знаю, что вы можете преобразовать путь к файлу, используя toFile()
метод, но я не смог найти обратное преобразование. Есть ли способ сделать это в Java 6 или ниже?
Можно ли получить объект Path от a java.io.File
?
Я знаю, что вы можете преобразовать путь к файлу, используя toFile()
метод, но я не смог найти обратное преобразование. Есть ли способ сделать это в Java 6 или ниже?
Ответы:
Да, вы можете получить его с помощью File
объекта File.toPath()
. Имейте в виду, что это только для Java 7+. У версий Java 6 и ниже его нет.
Path
была введена в Java 7, поэтому, к сожалению, нет способа сделать это в Java 6 и ниже.
Из документации :
Пути, связанные со значением по умолчанию
provider
, обычно совместимы сjava.io.File
классом. Пути, созданные другими поставщиками, вряд ли будут взаимодействовать с абстрактными именами путей, представленнымиjava.io.File
. ЭтотtoPath
метод может использоваться для получения Path из абстрактного имени пути, представленного объектом java.io.File. Полученный путь может использоваться для работы с тем же файлом, что иjava.io.File
объект. Кроме того,toFile
метод полезен для построения aFile
изString
представления aPath
.
(акцент мой)
Итак, для toFile
:
Возвращает
File
объект, представляющий этот путь.
И toPath
:
Возвращает
java.nio.file.Path
объект, созданный из этого абстрактного пути.
Вы, вероятно, хотите File.toPath()
.
Как многие предполагали, JRE v1.7 и выше имеет File.toPath ();
File yourFile = ...;
Path yourPath = yourFile.toPath();
В документации Oracle jdk 1.7, которая также упоминается в других постах выше, следующий эквивалентный код описан в описании метода toPath (), который может работать для JRE v1.6;
File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());