-1

需要一个基于 js 的 alfresco webscript 以递归方式获取所有文件夹和文件的列表及其大小。

4

2 回答 2

3

CMIS 查询:

select cmis:objectId, cmis:name, cmis:contentStreamLength 
from cmis:document 
where cmis:contentStreamLength>0 
order by cmis:contentStreamLength desc
  • HTTP 获取:

    http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/
      ?cmisselector=query
      &succinct=true
      &q=select cmis:objectId, cmis:name, cmis:contentStreamLength from cmis:document where cmis:contentStreamLength>0 order by cmis:contentStreamLength desc
    
  • JavaScript:

    使用搜索根对象

    search - org.alfresco.repo.jscript.Search - 根对象,提供对各种 Alfresco 搜索界面的访问,例如 FTS-Alfresco、Lucene、XPath 和保存的搜索结果

    var rs=search.query({
        query:"select * from cmis:document where cmis:contentStreamLength>0 order by cmis:contentStreamLength desc",
        language:"cmis-alfresco"         
    });
    
    for (var r in rs){
        logger.log(rs[r].parent.nodeRef.id+"/"+rs[r].nodeRef.id+"\t"+rs[r].parent.name+"/"+rs[r].name+"\t"+rs[r].size);
    }
    
于 2016-11-25T00:38:36.737 回答
1

对的,这是可能的。您可以使用存储库 javascript 获取所有文件夹、子文件夹和所有文件请尝试此代码提供正确的路径值

var path="Data Dictionary/***";
var documentLibrary = companyhome.childByNamePath("path");

var children = documentLibrary.children;

traverse(children);

function traverse(nodes){
  for each(var node in nodes) {
    if (node.isContainer){
      logger.log(node.name + " is a folder, traversing down");
      traverse(node.children);
    }else {
      logger.log(node.name ); 
        logger.log(node.size); 
    }
  }
}
于 2017-01-23T10:57:41.967 回答