Чи можливо отримати об’єкт 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 .toPath
java.io.File
toFile
File
String
Path
(наголос мій)
Отже, для 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());