Результат побега FileLocator.resolve (url)
МетодFileLocator.resolve(url)
может быть использован для перевода адресаbundleentry://something/somewhere/x.txt
на правильный URL-адрес файла для/mnt/foo/somewhere/x.txt
.
Однако, что также задокументировано наhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=145096, URL не экранирован. Например, если установка Eclipse, содержащая указанный пакет, находится в каталоге с пробелом, URL-адрес, возвращаемыйFileLocator.resolve
до сих пор содержит пространство и вызовurl.toURI()
терпит неудачу из-за этого.
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 [...]