我想使用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
答案 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