Wynik ucieczki FileLocator.resolve (url)
MetodaFileLocator.resolve(url)
może być używany do tłumaczenia adresubundleentry://something/somewhere/x.txt
do właściwego adresu URL pliku dla/mnt/foo/somewhere/x.txt
.
Jednak jest to również udokumentowane whttps://bugs.eclipse.org/bugs/show_bug.cgi?id=145096, adres URL nie jest unikany. Na przykład, jeśli instalacja Eclipse zawierająca wskazany pakiet znajduje się w katalogu zawierającym spację, adres URL zwrócony przezFileLocator.resolve
wciąż zawiera przestrzeń i dzwonienieurl.toURI()
z tego powodu zawodzi.
File
obiekt oparty na ścieżce względem bieżącego pakietu?Jako odniesienie, oto kod, który zawodzi podczas próby odnalezienia katalogudir
wewnątrz mojej wtyczki.jar
plik, jeśli ten plik znajduje się w katalogu zawierającym spację:
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 [...]