如何在Eclipse中访问插件的成员文件和文件夹

如何在Eclipse中访问插件的成员文件和文件夹,eclipse,eclipse-plugin,eclipse-rcp,Eclipse,Eclipse Plugin,Eclipse Rcp,我们有一个导出到RCP产品的插件。在插件中,有一个包含一些文件的文件夹。如何以编程方式访问Eclipse中某个文件夹下的插件文件 使用org.eclipse.core.runtime.FileLocator类访问插件中的文件 Bundle=。。。包含文件的包 IPath path=新路径(“文件插件中的相对路径”); URL=FileLocator.find(bundle,path,null); URL fileUrl=FileLocator.toFileURL(URL); FileLocat

我们有一个导出到RCP产品的插件。在插件中,有一个包含一些文件的文件夹。如何以编程方式访问Eclipse中某个文件夹下的插件文件

使用
org.eclipse.core.runtime.FileLocator类访问插件中的文件

Bundle=。。。包含文件的包
IPath path=新路径(“文件插件中的相对路径”);
URL=FileLocator.find(bundle,path,null);
URL fileUrl=FileLocator.toFileURL(URL);
FileLocator.find
方法返回的
url
使用特定于Eclipse的方案,并且只能与某些Eclipse API一起使用

调用
FileLocator.toFileURL
会将URL转换为正常的
文件
URL,可能需要将插件jar解包到临时位置才能执行此操作

您可以使用

Bundle Bundle=FrameworkUtil.getBundle(getClass());
获取包含当前类或

Bundle=Platform.getBundle(“插件id”);

要按插件id访问捆绑包,请使用
org.eclipse.core.runtime.FileLocator
类访问插件中的文件

Bundle=。。。包含文件的包
IPath path=新路径(“文件插件中的相对路径”);
URL=FileLocator.find(bundle,path,null);
URL fileUrl=FileLocator.toFileURL(URL);
FileLocator.find
方法返回的
url
使用特定于Eclipse的方案,并且只能与某些Eclipse API一起使用

调用
FileLocator.toFileURL
会将URL转换为正常的
文件
URL,可能需要将插件jar解包到临时位置才能执行此操作

您可以使用

Bundle Bundle=FrameworkUtil.getBundle(getClass());
获取包含当前类或

Bundle=Platform.getBundle(“插件id”);

要按插件id访问捆绑包。

platform:/plugin如何处理此解决方案FileLocator会导致在文件系统文件夹中找到文件,而不是在plugin.man中找到它!我使用了新文件(fileUrl.toURI()),然后它变成了文件。如何从中生成文件。fileUrl.toURI由于eclipse错误而失败#145096当文件夹名称中有空格时,它会失败。中对此进行了一些讨论。我自己也没有遇到过这个问题。我使用了URIUtil.toURI(fileUrl.platform:/plugin这个解决方案怎么样FileLocator会在文件系统文件夹中找到文件,而不是plugin.man中找到它!我使用了新文件(fileUrl.toURI()),然后它变成了文件。如何从中生成文件。fileUrl.toURI由于eclipse错误而失败#145096当文件夹名称中有空格时,它会失败。中对此进行了一些讨论。我自己没有遇到过这个问题,我使用了URIUtil.toURI(fileUrl)。