如何在Alfresco中获取所有儿童文件夹



我正在尝试使用以下代码

来获取文件夹的所有孩子(在alfresco服务器中创建的文件夹)
//Path is the path to the location of the folder in alfresco server
String folderId = session.getObjectByPath(path).getId();
Folder folder = (Folder) session.getObject(folderId);
if(folder.getChildren()!= null) {
  ItemIterable<CmisObject> childFolderIterable = folder.getChildren();
  if(childFolderIterable.getHasMoreItems()) {
    Iterator<?> childFolders = childFolderIterable.iterator();
    while(childFolders.hasNext()) {
      Folder subChildFolder = (Folder) childFolders.next();
      getChildrenRepositories(subChildFolder);              
    }
  }
}

现在我的问题是,Alfresco的文件夹包含2个不同的子文件夹,但以下代码 ChildFolderIterable.gethasmoreitems()返回false。

有人可以调查一下,并指导我在哪里错了或有任何适当的方法可以找到文件夹的孩子?

也可以通过以下方式完成:

 for(CmisObject obj: folder.getChildren()) {
        System.out.println("Name: " + obj.getName());
        System.out.println("Id: " + obj.getId());
        System.out.println("Type: " + getType(obj.getType()));
        System.out.println();
    }

gethasmoreitems()方法文档说:

返回存储库是否包含超出已经获取的项目页面之外的其他项目。 返回: true =>将向存储库提出更多页面请求

如果它返回false,则意味着您通过调用getChildren()获取的页面已包含该文件夹的所有孩子,并且不需要进一步的请求(要获得其余的孩子)。如果您有一个带有很多孩子的文件夹,则可以使用操作上下文对结果进行分页。OpenCMIS项目网站提供了一个适当的示例。

如果您不使用分页,则只需致电:

Iterator<CmisObject> it = folder.getChildren().iterator();
while(it.hasNext()) {
  CmisObject object = it.next();
  // Do something with the child object
}

迭代器应为您要寻找的两个孩子提供。

相关内容

  • 没有找到相关文章

最新更新