如何使用alfresco-api创建文件夹

时间:2017-10-25 16:30:56

标签: alfresco

我想使用ALFRESCO API创建一个文件夹,所以我使用了这个函数:

public Folder createFolder(String parentFolderId, String folderName) {
    Session cmisSession = getCmisSession();
    Folder rootFolder = (Folder) cmisSession.getObject(parentFolderId);

    Folder subFolder = null;
    try {
        // Making an assumption here that you probably wouldn't normally do
        subFolder = (Folder) cmisSession.getObjectByPath(rootFolder.getPath() + "/" + folderName);
        System.out.println("Folder already existed!");
    } catch (CmisObjectNotFoundException onfe) {
        Map<String, Object> props = new HashMap<String, Object>();
        props.put("cmis:objectTypeId",  "cmis:folder");
        props.put("cmis:name", folderName);
        subFolder = rootFolder.createFolder(props);
        String subFolderId = subFolder.getId();
        System.out.println("Created new folder: " + subFolderId);
    }

    return subFolder;
}

此文件夹是在documentLibrary中创建的。 我不知道如何在这个新文件夹中创建另一个文件夹。

PS:此功能是alfresco-api-examples

中定义的功能

1 个答案:

答案 0 :(得分:0)

您引用的函数是一个示例辅助函数,它将在给定父文件夹ID和文件夹名称的情况下返回CMIS Folder对象。如果该文件夹不存在,它将创建一个新文件夹并返回该文件夹。

例如,如果您有像documentLibrary / folder1这样的文件夹结构,并且调用createFolder(documentLibraryId,“folder1”),则会返回一个代表“文件夹1”文件夹的CMIS文件夹对象。

如果您要调用createFolder(documentLibraryId,“folder2”),将找不到该文件夹​​,将创建一个名为“folder2”的新文件夹,该代码将返回代表新“文件夹2”的CMIS Folder对象“文件夹。

现在您有了一个CMIS Folder对象,您可以调用它的方法。如果你想创建一个新文件夹,你可以再次调用createFolder,但这次传入新文件夹的ID,如下所示:

Folder subFolder = createFolder(folder.id, "subfolder");

或者你可以使用CMIS Folder对象的createFolder方法,但是你必须传入一个属性对象,比如这个

Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.NAME, "subfolder");
properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder");

Folder subFolder = folder.createFolder(properties);

有关更多OpenCMIS代码示例,请参阅https://chemistry.apache.org/docs/cmis-samples/samples/create-objects/index.html