Например:
IProject project = ...
IPath location = project.getLocation();
Files.copy(pathToExistingFolder, location.toFile().toPath());
project.refreshLocal(IResource.DEPTH_INFINITE, null);
Более соответствующее решение будет проходить через существующую папку и создать копию каждого файла и папки найденных в нем.
Чтобы создать новый файл, используйте
IProject project = ...
IFile file = project.getFile("path/relative/to/prooject");
file.create(inputStream, IResource.NONE, null);
// or, to override and existing file (file.eists() == true):
file.setContents(inputStream, IResource.NONE, null);
The inputStream
предполагается подкрепляться в настоящее время проходимого файл из существующей папки файлов.
Чтобы создать новую папку, используйте
IProject project = ...
IFolder folder = project.getFolder("path/relative/to/prooject");
folder.create(IResource.NONE, true, null);
Я также предположить, что существующие файлы будут в конечном счете, в конечном итоге будет храниться в (Jared) плагин. В этом случае последний подход является единственно жизнеспособным, поскольку он позволяет вам создавать структуру папок и содержимое файлов из хранилища подключаемых модулей.
Plugin Development Environment (PDE) обеспечивает точки расширения и API до manage and execute templates during project-creation. Хотя вы, конечно, не хотите зависеть от подключаемых модулей от PDE, вам может понадобиться ознакомиться с источниками: https://github.com/eclipse/eclipse.pde.ui/tree/master/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/templates
Привет. Спасибо за ответ. Есть ли проблема в реализации быстрого и грязного пути? Кроме того, Files.copy (pathToExistingFolder, location.toFile(). ToPath()); выдает ошибку: «Копировать метод (Path, OutputStream) в тип« Файлы »не применимо для аргументов (Path, Path)» – tejas
@tejas Убедитесь, что вы используете правильный 'Path' - это должно быть' java.nio .file.Path' не 'org.eclipse.core.runtime.Path'. –
@tejas Предпочтительным способом доступа к файлам, управляемым рабочей областью, является API ресурсов. Таким образом, вы избежите возможных промежуточных сбоев между копированием файлов «за спиной» рабочей области и обновлением состояния рабочей области. –