小编典典

从工作区的文件夹中检索文件

java

我的工作区中有一个文件夹,但在“ src”之外,其中包含一个文件,使用自定义插件向导时,该文件需要读取才能设置新文件。

除非我确切指定该文件在系统中的位置,否则我无法正确获取此文件的位置并保持获取空指针。我的问题是该文件在插件项目中,但无法获取它的位置。

插件中的文件位置为com.my.plugin / rules / setup.txt


阅读 222

收藏
2020-11-19

共1个答案

小编典典

要从已部署的捆绑包中加载资源,您可以执行以下操作(要加载的资源需要包含在build.properties二进制构建设置中):

Bundle bundle = YourBundleActivator.getDefault().getBundle();
IPath path = new Path("rules/setup.txt");
URL setupUrl = FileLocator.find(bundle, path, Collections.EMPTY_MAP);
File setupFile = new File(FileLocator.toFileURL(setupUrl).toURI());

请注意,这与从工作空间获取某些东西不同,因为当捆绑包运行时,在工作空间中找到某物将引用 运行时
工作空间,而不是开发工作空间。如果确实需要运行时工作空间中的某些内容,则可以按以下方式访问它:

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IResource resourceInRuntimeWorkspace = root.findMember("rules/setup.txt");
File file = new File(resourceInRuntimeWorkspace.getLocationURI());
2020-11-19