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

Jac*_*ith 4 java eclipse plugins

我的工作区内有一个文件夹,但在'src'之外,其中包含一个文件,需要在使用自定义插件向导时设置新文件.

除非我确切地指定文件在系统中的位置,否则我无法正确获取此文件的位置并继续获取空指针.我的问题是文件是在一个插件项目中,我无法得到它的位置.

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

Fab*_*eeg 7

要从已部署的捆绑包加载资源,您可以执行以下操作(要加载的资源需要包含在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());
Run Code Online (Sandbox Code Playgroud)

请注意,这与从工作区中获取内容不同,因为在捆绑包运行时,在工作区中查找内容将引用运行时工作区,而不是开发工作区.如果您确实需要运行时工作区中的某些内容,则可以像这样访问它:

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IResource resourceInRuntimeWorkspace = root.findMember("rules/setup.txt");
File file = new File(resourceInRuntimeWorkspace.getLocationURI());
Run Code Online (Sandbox Code Playgroud)