How to programmatically copy a folder from a plugin to a new project in the work space?

后端 未结 2 1537
栀梦
栀梦 2021-01-13 09:15

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

相关标签:
2条回答
  • 2021-01-13 09:51

    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).

    0 讨论(0)
  • 2021-01-13 10:10

    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);
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题