该方法FileLocator.resolve(url)
可用于将地址转换bundleentry://something/somewhere/x.txt
为/mnt/foo/somewhere/x.txt
.
但是,这也记录在https://bugs.eclipse.org/bugs/show_bug.cgi?id=145096中,URL 没有转义。例如,如果包含引用包的 Eclipse 安装位于包含空格的目录中,则返回的 URLFileLocator.resolve
仍然包含空格,因此调用url.toURI()
失败。
- 如何手动转义URL 中的所有必要字符?
- 如何
File
根据相对于当前包的路径获取对象?
作为参考,如果该文件位于包含空格的目录中,则尝试dir
在我的插件文件中查找目录时失败的代码如下:.jar
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 [...]