我正在使用Eclipse平台以Workbench的形式开发GUI(类似于使用Eclipse)。用户打开包含特定类型文件的项目(不是Java文件 - 文件对于项目是唯一的,但只是文本文件),并使用Workbench编辑文件。目前,项目也是特定于目录的。这已经存在并且非常实用。
然而,我们正在为该工具添加功能;其中一个所需的功能是能够从其他目录导入包/模块(使用import语句完成;目录路径在首选项文件中指定)。我已经能够在功能级别上执行此操作 - 例如,使用内部数据结构 - 但我正在努力将这些文件添加到" IProject"。
考虑一个例子。我们有一个目录,。/ foo,其中包含一组文本文件。这些文件中有包语句;让我们说他们也是"包foo"使它更简单。
我们有另一个目录,。/ bam,它有另一组文本文件(包bam)。我们希望package bam导入包foo。正如我所说,这里内部数据结构的构建已经起作用。
难点在于交互式Workbench版本 - 实际上是将./foo中的文件添加到IProject中。这是我从./bam识别文件的方式(当项目基于目录时)。
IFile bam1 = (IFile) getProject().findMember(bamSource.getPath())
" BamSource",这里可能是" /bam/bam1.extension"。这很好用。但是,当我尝试类似的东西时:
IFile foo1 = (IFile) getProject().findMember(fooSource.getPath())
"发现会员"返回null值。这显然是有问题的。
我的问题是:如何在现有的IProject中添加或创建新的IFile,以便" findMember"会返回实际的IFile吗?
我已尝试单独创建一个IFile:
IPath fooPath = new Path(fooSource.getPath());
IFile test = getProject().getFile(fooPath);
我还尝试使用该文件创建链接(如此处所示:In eclipse API, How to get IFile from file that locate outside project or workspace):
test.createLink(fooPath, 1, monitor);
有什么建议吗?如果您需要更多信息,请与我们联系。