Eclipse 以编程方式将不在工作区中的文件加载到TextEditor中

Eclipse 以编程方式将不在工作区中的文件加载到TextEditor中,eclipse,file,editor,text-editor,rcp,Eclipse,File,Editor,Text Editor,Rcp,有没有办法在工作区之外加载文件? 这就是我发现的: IFile fileToBeOpened = ...; IEditorInput editorInput = new FileEditorInput(fileToBeOpened); IWorkbenchWindow window=PlatformUI.getWorkbench().getActiveWorkbenchWindow(); IWorkbenchPage page = window.getActivePage(); page.ope

有没有办法在工作区之外加载文件? 这就是我发现的:

IFile fileToBeOpened = ...;
IEditorInput editorInput = new FileEditorInput(fileToBeOpened);
IWorkbenchWindow window=PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IWorkbenchPage page = window.getActivePage();
page.openEditor(editorInput, "org.eclipse.ui.DefaultTextEdtior");

这里的问题是第一行。我要编辑的文件是java.io.File类型。但无法将其转换为IFile实例。如何将java.io.File作为输入传递给编辑器?

要打开外部文件,请按照此处的说明进行操作


Tnx!我以前发现过这个代码,但它不起作用。。。但它现在起作用了。
import java.io.File;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;

File fileToOpen = new File("externalfile.xml");

if (fileToOpen.exists() && fileToOpen.isFile()) {
    IFileStore fileStore = EFS.getLocalFileSystem().getStore(fileToOpen.toURI());
    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

    try {
        IDE.openEditorOnFileStore( page, fileStore );
    } catch ( PartInitException e ) {
        //Put your exception handler here if you wish to
    }
} else {
    //Do something if the file does not exist
}