I am developing an Eclipse Plugin creating a new Project Wizard. When creating such new project in the workspace I need it to copy a folder, and its descendent, from the plu
This is not possible without knowing exactly the files (you cannot iterate over the children). Instead of using a folder with files and subfolders, create a zip with that structure and unpack the zip in your workspace (this should preserve the desired structure).
Check out this answer to see how to get a file/folder "out of" a plugin.
Then create new files/folders in the projects and set file contents using 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);
}
}
}