对于项目外的文件,如何在java中将文件转换为IFile?

通常,此代码用于从File转换为IFile

 IWorkspace workspace= ResourcesPlugin.getWorkspace(); IPath location= Path.fromOSString(file.getAbsolutePath()); IFile ifile= workspace.getRoot().getFileForLocation(location); 

但这仅适用于项目中的java文件。 当File文件不在工作区(不在项目中)时,如何获取IFile

IResource及其子IFile最初仅用于工作空间中的资源。 请参阅Javadoc for IResource 。

但是,由于Eclipse 3.3也支持外部文件,请参阅此Eclipse Wiki页面 。

我需要这个来使用Eclipse AST框架的Binding Resolutions。 但显然,这是不可能的 – 对于任何需要它的人,请查看此网站:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=206391