Можно ли получить объект 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());