private IEditorInput getUnzippedEditorInput() throws Exception { final InputStream in = ZipUtils.getStreamForFile(EclipseUtils.getFile(getEditorInput())); final String fileName = getEditorInput().getName(); final String zipExt = FileUtils.getFileExtension(fileName); // This might not work, depending on how file is named. final String origExt = FileUtils.getFileExtension(fileName.substring(0, fileName.length() - zipExt.length() - 1)); final File file = File.createTempFile(fileName, "." + origExt); file.deleteOnExit(); FileUtils.write(new BufferedInputStream(in), file); final IFileStore externalFile = EFS.getLocalFileSystem().fromLocalFile(file); return new FileStoreEditorInput(externalFile); }