Có thể lấy một đối tượng Path từ một java.io.File
?
Tôi biết bạn có thể chuyển đổi đường dẫn thành tệp bằng toFile()
phương thức, nhưng tôi không thể tìm thấy chuyển đổi ngược lại. Có cách nào để làm điều này trong Java 6 hoặc thấp hơn không?
Có thể lấy một đối tượng Path từ một java.io.File
?
Tôi biết bạn có thể chuyển đổi đường dẫn thành tệp bằng toFile()
phương thức, nhưng tôi không thể tìm thấy chuyển đổi ngược lại. Có cách nào để làm điều này trong Java 6 hoặc thấp hơn không?
Câu trả lời:
Có, bạn có thể lấy nó từ File
đối tượng bằng cách sử dụng File.toPath()
. Hãy nhớ rằng điều này chỉ dành cho Java 7+. Phiên bản Java 6 trở xuống không có nó.
Path
đã được giới thiệu trong Java 7, vì vậy thật không may, không có cách nào để làm điều này trong Java 6 trở xuống.
Từ tài liệu :
Các đường dẫn được liên kết với mặc định
provider
thường tương thích vớijava.io.File
lớp. Các đường dẫn được tạo bởi các nhà cung cấp khác dường như không thể tương tác với các tên đường dẫn trừu tượng được đại diện bởijava.io.File
. CáctoPath
phương pháp có thể được sử dụng để có được một con đường từ tên đường dẫn trừu tượng đại diện bởi một đối tượng java.io.File. Đường dẫn kết quả có thể được sử dụng để hoạt động trên cùng một tệp vớijava.io.File
đối tượng. Ngoài ra,toFile
phương thức này rất hữu ích để xây dựng aFile
từString
biểu diễn của aPath
.
(nhấn mạnh của tôi)
Vì vậy, cho toFile
:
Trả về một
File
đối tượng đại diện cho đường dẫn này.
Và toPath
:
Trả về một
java.nio.file.Path
đối tượng được xây dựng từ đường dẫn trừu tượng này.
Bạn có thể muốn File.toPath()
.
Như nhiều người đã đề xuất, JRE v1.7 trở lên có File.toPath ();
File yourFile = ...;
Path yourPath = yourFile.toPath();
Trên tài liệu jdk 1.7 của Oracle cũng được đề cập trong các bài viết khác ở trên, mã tương đương sau được mô tả trong mô tả cho phương thức toPath (), có thể hoạt động cho JRE v1.6;
File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());