このメソッドを使用して、アドレスをの適切なファイルURLに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インストールがスペースを含むディレクトリにある場合、によって返されるURLにはFileLocator.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 [...]