Phương thức FileLocator.resolve(url)
có thể được sử dụng để dịch địa chỉ bundleentry://something/somewhere/x.txt
thành URL tệp thích hợp cho /mnt/foo/somewhere/x.txt
.Kết quả thoát của FileLocator.resolve (url)
Tuy nhiên, cũng được ghi lại tại https://bugs.eclipse.org/bugs/show_bug.cgi?id=145096, URL không bị thoát. Ví dụ, nếu bản cài đặt Eclipse chứa gói được tham chiếu nằm trong một thư mục chứa một dấu cách, thì URL được trả về bởi FileLocator.resolve
vẫn chứa khoảng trắng và gọi url.toURI()
không thành công do điều đó.
- Làm cách nào để thoát theo cách thủ công tất cả các ký tự cần thiết cần thiết trong URL?
- Làm cách nào để có được đối tượng
File
dựa trên đường dẫn tương ứng với gói hiện tại?
Là tài liệu tham khảo, đây là mã mà không thành công khi cố gắng để tìm ra thư mục dir
bên trong tập tin .jar
Plugin tôi nếu tập tin đó là trong một thư mục có chứa một không gian:
final IPath pathOfExampleProject = new Path("dir");
final Bundle bundle = Platform.getBundle(AproveIDs.PLUGIN_ID);
final URL url = FileLocator.find(bundle, pathOfExampleProject, null);
final URL url2 = FileLocator.toFileURL(url);
url2.toURI(); // Illegal character in path at index [...]