2014-09-01 52 views
0

我想找回通过getChildAssocs(NodeRef nodeRef,设置childNodeTypeQNames)方法包含在Java中的文件夹中的所有文件...露天 - 如何获得不是文件夹的露天(Java)的所有儿童

我想要以这种方式使用它:

Set<QName> types = new HashSet<QName>(1, 1.0f); 
    types.add(ContentModel. TYPE_CONTENT); 
    List<ChildAssociationRef> filesFolderList = nodeService.getChildAssocs(parentNodeRef, types);  
    for (ChildAssociationRef file : filesFolderList) { 
     NodeRef childRef = file.getChildRef();   
     if(!nodeService.hasAspect(childRef, MyModel.MY_ASPECT) 
       && !nodeService.hasAspect(childRef, MyModel.MY_SECOND_ASPECT) 
       && !childRef.equals(actualDocumentRef)){    
      String fileName = (String) nodeService.getProperty(childRef, ContentModel.PROP_NAME);    
     }        
    } 

它返回我0结果既没有文件也没有文件夹......我错了什么? 在此先感谢!

回答

3

问题是这样的位的位置:

types.add(ContentModel. TYPE_CONTENT); 
List<ChildAssociationRef> filesFolderList = 
     nodeService.getChildAssocs(parentNodeRef, types); 

getChildAssocs的呼叫可以通过关联类型任选的过滤器。但是,您传递的类型是内容类型,而不是关联类型。关联类型如ContentModel.ASSOC_CONTAINS

如果您首先更改为ContentModel.ASSOC_CONTAINS,那么您将获得所有子项(内容,文件夹和自定义类型),并且在此范围内可以检查类型(或更好地使用字典服务检查类型或子类型)

否则,要轻松获取节点的所有子节点是否具有文件或文件夹,请使用FileFolderService.list。只需将文件布尔值设置为true并将文件夹布尔值设置为false,即可获得仅内容项目和无文件夹