Resultado de escape de FileLocator.resolve (url)
El métodoFileLocator.resolve(url)
se puede utilizar para traducir una direcciónbundleentry://something/somewhere/x.txt
a una URL de archivo adecuada para/mnt/foo/somewhere/x.txt
.
Sin embargo, que también se documenta enhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=145096, la URL no se escapa. Como ejemplo, si la instalación de Eclipse que contiene el paquete al que se hace referencia está en un directorio que contiene un espacio, la URL devuelta porFileLocator.resolve
Todavía contiene el espacio y la llamada.url.toURI()
falla por eso
File
objeto basado en una ruta relativa al paquete actual?Como referencia, aquí está el código que falla al intentar encontrar el directoriodir
dentro de mi plugin.jar
archivo si ese archivo está en un directorio que contiene un espacio:
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 [...]