Скопируйте папку в Alfresco

Я хочу скопировать папку в другую, под открытым небом, рекурсивно, с Java.

У меня есть только NodeRef каждой папки.

Как сделать?

2 ответа

Используйте CopyService.copyAndRename:

copyService.copyAndRename(
    sourceNodeRef,
    destinationNodeRef,
    ContentModel.ASSOC_CONTAINS,
    QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "New name"),
    true // Recursive
);

Вдохновленный собственным сценарием Alfresco ScriptNode.java.

На всякий случай кто-нибудь ищет скопировать файл (ы) из папки назначения на свежем воздухе:

String docName = nodeService.getProperty(fileNode, ContentModel.PROP_NAME).toString();
QName documentName = QName.createQName(CustomModel.CUSTOM_NAMESPACE_URI,docName);
NodeRef copiedFile = copyService.copy(fileNode, destnode, ContentModel.ASSOC_CONTAINS, documentName);

nodeService.setProperty(copiedFile, ContentModel.PROP_NAME, docName); 

Последняя строка устанавливает имя скопированного файла в фактическое имя документа; иначе вы найдете имя скопированного файла как noderef файла

Другие вопросы по тегам