2014-09-01 47 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,即可獲得僅內容項目和無文件夾