private void copyFolder(TaskMonitor monitor) {
		try {
			// if folder is a root folder, copy the contents thereof
			if (srcFolder.getParent() == null) {
				DomainFolder[] folders = srcFolder.getFolders();
				for (DomainFolder element : folders) {
					element.copyTo(destFolder, monitor);
				}
				DomainFile[] files = srcFolder.getFiles();
				for (DomainFile element : files) {
					element.copyTo(destFolder, monitor);
				}
			}
			else {
				srcFolder.copyTo(destFolder, monitor);
			}
		}
		catch (CancelledException e) {
			// ignore
		}
		catch (IOException e) {
			String msg = e.getMessage();
			if (msg == null) {
				msg = e.toString();
			}
			Msg.showError(this, null, "Folder Copy Failed",
				"Could not copy folder " + srcFolder.getName() + ".\n" + msg);
		}
	}
@see ghidra.util.task.Task#run(ghidra.util.task.TaskMonitor)
Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/CopyTask.java