Чи можливо отримати об’єкт Path від java.io.File?
Я знаю, що ви можете перетворити шлях до файлу toFile()методом, але я не зміг знайти зворотне перетворення. Чи є спосіб зробити це на Java 6 або нижче?
Чи можливо отримати об’єкт Path від 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. Спосіб може бути використаний для отримання шляху від абстрактного імені шляху , представленого об'єктом java.io.File. Отриманий шлях може бути використаний для роботи з тим самим файлом, що і об'єкт. Крім того, метод корисний для побудови a з подання a .toPathjava.io.FiletoFileFileStringPath
(наголос мій)
Отже, для toFile:
Повертає
Fileоб'єкт, що представляє цей шлях.
І toPath:
Повертає
java.nio.file.Pathоб'єкт, побудований з цього абстрактного шляху.
Ви, ймовірно, хочете File.toPath().
Як багато з них пропонують, JRE v1.7 і вище має File.toPath ();
File yourFile = ...;
Path yourPath = yourFile.toPath();
У документації jdk 1.7 Oracle, яка також згадується в інших публікаціях вище, наступний еквівалентний код описаний в описі методу toPath (), який може працювати для JRE v1.6;
File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());