3

我试图弄清楚如何以.zip编程方式从存档文件 (a) 导入 Eclipse 项目 - 我想做导入向导所做的同样的事情,但自动(使用向导定期重新导入同一个项目开始感觉真的很啰嗦)。我发现了一些相关的问题(例如,以编程方式将现有项目导入 Eclipse),但我不知道如何让同样的事情为.zip导入工作。

我目前的想法如下:如果我可以从.zip某种方式获得项目描述,那么我可以以编程方式创建项目(根据引用的问题)。从那里,我希望我可以:

这有道理吗?(如果没有,请问我应该怎么做?)如果是,我应该如何从.zip?

4

1 回答 1

3

对于它的价值,这似乎有效(预先整理):

IWorkspace workspace = this.project.getWorkspace();
IProjectDescription newProjectDescription = workspace.newProjectDescription(projectName);
IProject newProject = workspace.getRoot().getProject(projectName);
newProject.create(newProjectDescription, null);
newProject.open(null);

zipFile = new ZipFile(workspace.getRoot().getLocation() + "/" + projectName + ".zip");
IOverwriteQuery overwriteQuery = new IOverwriteQuery() {
    public String queryOverwrite(String file) { return ALL; }
};
ZipLeveledStructureProvider provider = new ZipLeveledStructureProvider(zipFile);
List<Object> fileSystemObjects = new ArrayList<Object>();
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
    fileSystemObjects.add((Object)entries.nextElement());
}
ImportOperation importOperation = new ImportOperation(newProject.getFullPath(), new ZipEntry(projectName), provider, overwriteQuery, fileSystemObjects);
importOperation.setCreateContainerStructure(false);
importOperation.run(new NullProgressMonitor());
于 2012-09-18T21:42:45.930 回答