2009-06-06 40 views
22

通常情况下,这个代码是用于转换从FileIFile如何从文件转换为java中的IFile,用于项目之外的文件?

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

但对于Java文件这只能在项目内。当File文件不在工作区(不在项目中)时,如何获得IFile

+0

您的意思是getFileForLocation在第3行? – 2011-10-16 00:38:27

回答

9

IResource及其子IFile原本仅用于位于工作区中的资源。请参阅Javadoc for IResource

但是,由于Eclipse 3.3还支持外部文件,请参阅this Eclipse Wiki page

+0

我试过这个解决方案,但是我得到这个错误 java.lang.IllegalStateException:Workspace已关闭。 当我尝试获取工作空间时,如下所示: IWorkspace ws = ResourcesPlugin.getWorkspace(); 你能帮忙解决这个问题吗? – 2009-06-07 15:32:52

相关问题