public void copyDirectory(@Nonnull Workspace workspace,
	                          @Nonnull WorkspaceResource resource,
	                          @Nonnull FileBundle bundle,
	                          @Nonnull String directoryName) {
		boolean isRootDirectory = directoryName.isEmpty();
		new NamePopup(newDirectoryName -> {
			if (directoryName.equals(newDirectoryName)) return;
			for (FileInfo value : bundle.valuesAsCopy()) {
				String path = value.getName();
				if (isRootDirectory) {
					if (path.indexOf('/') == -1) {
						String name = newDirectoryName + "/" + path;
						bundle.put(value.toFileBuilder().withName(name).build());
					}
				} else {
					if (path.startsWith(directoryName)) {
						String name = replacePrefix(path, directoryName, newDirectoryName);
						bundle.put(value.toFileBuilder().withName(name).build());
					}
				}
			}
		}).withInitialPathName(directoryName)
				.forDirectoryCopy(bundle)
				.show();
	}
Prompts the user to give a new name for the copied directory.

@param workspace
		Containing workspace.
@param resource
		Containing resource.
@param bundle
		Containing bundle.
@param directoryName
		Name of directory to copy.
recaf-ui/src/main/java/software/coley/recaf/services/navigation/Actions.java