如何以编程方式将文件夹从插件复制到工作区中的新项目?

Sin*_*ico 5 eclipse eclipse-plugin eclipse-rcp

我正在开发一个Eclipse插件,创建一个新的Project Wizard.在工作区中创建这样的新项目时,我需要它将文件夹及其后代从插件复制到工作区中刚创建的项目.问题是,虽然项目是IResource插件文件夹在文件系统中.

我成功获取了我需要复制的源插件文件夹的URL,并且我有IProject参考.

我需要知道的是:如何将前者复制到后者中?

Mar*_*rik 5

查看此答案,了解如何从插件中"获取"文件/文件夹.

然后在项目中创建新文件/文件夹并使用InputStream以下命令设置文件内容:

void copyFiles (File srcFolder, IContainer destFolder) {
    for (File f: srcFolder.listFiles()) {
        if (f.isDirectory()) {
            IFolder newFolder = destFolder.getFolder(new Path(f.getName()));
            newFolder.create(true, true, null);
            copyFiles(f, newFolder);
        } else {
            IFile newFile = destFolder.getFile(new Path(f.getName()));
            newFile.create(new FileInputStream(f), true, null);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)