Получить java.nio.file.Path объект из java.io.File

Можно ли получить объект Path из java.io.File?

Я знаю, что вы можете преобразовать путь к файлу с помощью метода toFile(), но я не смог найти обратное преобразование. Есть ли способ сделать это в Java 6 или ниже?

Ответ 1

Да, вы можете получить его из объекта File, используя File.toPath(). Имейте в виду, что это только для Java 7+. Java версии 6 и ниже не имеют его.

Ответ 2

Из документации:

Пути, связанные со значением по умолчанию provider, как правило, совместимы с классом java.io.File. Пути, созданные другими поставщиками, вряд ли совместимы с абстрактными именами пути, представленными на java.io.File. Метод toPath может использоваться для получения Пути из абстрактное имя пути, представленное объектом java.io.File.. результирующий Путь может использоваться для работы в том же файле, что и java.io.File объект. Кроме того, метод toFile полезен для постройте a File из представления String a Path.

(акцент мой)

Итак, для toFile:

Возвращает объект File, представляющий этот путь.

И toPath:

Возвращает объект java.nio.file.Path, построенный из этого абстрактного пути.

Ответ 3

Вероятно, вы хотите File.toPath().

Ответ 4

Как и многие, JRE v1.7 и выше имеют File.toPath();

File yourFile = ...;
Path yourPath = yourFile.toPath();

В Oracle jdk 1.7 documentation, о котором также упоминается в других сообщениях выше, следующий следующий эквивалентный код описан в описании метода toPath(), который может работать для JRE v1.6;

File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());