如何使用alfresco webscript中的文件名或文件路径获取csv文件noderef

时间:2017-04-11 05:10:37

标签: alfresco alfresco-webscripts

我在露天非常新,我正在努力从alfresco存储库中读取csv文件。

我在alfresco存储库中有一个CSV文件,数据字典文件夹。 现在我的要求是获取csv文件的noderef并从csv文件中读取所有数据。

任何人都可以帮助我。

2 个答案:

答案 0 :(得分:0)

您可以使用Lucene查询来使用

这样的名称来获取文档
1)alfresco Node Browser Query :   +PATH:"/app:company_home//* " AND +@cm\:name:"abc.txt"

2)alfresco share javascript query : var nodes = nodes = search.luceneSearch("@cm\\:name:\"abc.txt\"");

3)alfresco java backed webscript query : 
        String query ="PATH:\"/app:company_home//*\"";
        query+="@cm\\:name:abc.txt";


        StoreRef storeRef = new StoreRef(StoreRef.PROTOCOL_WORKSPACE,"SpacesStore");

        ResultSet results = searchService.query(storeRef, SearchService.LANGUAGE_LUCENE, query);

           for (ResultSetRow row : results) {
              NodeRef currentNodeRef = row.getNodeRef();
              lista.add(currentNodeRef.toString());

           }

根据您的要求对查询进行更改。

答案 1 :(得分:0)

以下代码将返回您期望的文件夹/文件路径中的 noderef。

public static void main(String[] args) throws IOException {
        client = new AlfrescoClient.Builder().connect("http://localhost:8080/alfresco", "admin", "admin").build();
        NodeRepresentation node = findNodeByPath("Sites/testsite/documentLibrary/TestFolder/UploadTest.txt");
        System.out.println(node == null ? "null" : node.getName());
    }

private static NodeRepresentation findNodeByPath(String path) throws IOException {
    if (path.startsWith("/"))
        path = path.substring(1);
    if (path.endsWith("/"))
        path = path.substring(0, path.length() - 1);
    return findNodeByPath("-root-", path);
}

private static NodeRepresentation findNodeByPath(String parentNodeId, String path) throws IOException {
    String[] pathParts = path.split("/");
    String name = pathParts[0];
    String remaining = pathParts.length == 1 ? "" : path.substring(name.length() + 1, path.length());
    List<NodeRepresentation> children = client.getNodesAPI().listNodeChildrenCall(parentNodeId).execute().body()
            .getList();
    for (NodeRepresentation child : children) {
        if (child.getName().equals(name)) {
            return pathParts.length == 1 ? child : findNodeByPath(child.getId(), remaining);
        }
    }
return null;