使用c#从Sharepoint库检索文件

本文关键字:检索 文件 Sharepoint 使用 | 更新日期: 2023-09-27 17:50:26

我想从Sharepoint teamsite的库文件夹中检索文件。我知道文件的确切位置,但我不知道它的全名。

文件夹的完整URL是:http://ts/001/API/Asset%20Optimisation%20Interface/Forms/AllItems.aspx?RootFolder=%2F001%2FAPI%2FAsset%20Optimisation%20Interface%2FAsset%20Technical%20Data&FolderCTID=0x0120002C707B834A70044986A39A4BCBFE9C6D&View={889C2A16-626B-4FFC-97F7-142AA27522F3}

在这个文件夹中,有几个子文件夹,只有一个文件。该文件是一个excel文件,它的名字将以"我的文件名"开头。

我还没有找到如何查询文件而不使用递归的所有在我的CamlQuery。不幸的是,在子文件夹中会有类似的命名文件,我对此不感兴趣。

下面的代码:

        ClientContext clientContext = new ClientContext("http://ts/001/API/");
        var list = clientContext.Web.Lists.GetByTitle("Asset Optimisation Interface");
        CamlQuery qry = new CamlQuery();
        qry.ViewXml = "<View Scope='Recursive'></View>";
        var files = list.GetItems(qry);
        clientContext.Load(files);
        clientContext.ExecuteQuery();
        foreach (var file in files)
        {
            Console.WriteLine(file["FileLeafRef"]);
        }

关于CamlQuery的MSDN文档似乎相当轻!

一旦我找到了我感兴趣的文件,我想把它下载到本地驱动器。

任何帮助将不胜感激!

指出

  • 我无法控制文件夹结构或文件名
  • Sharepoint 2013
  • 。. Net Framework 4.0
  • Microsoft.SharePoint.Client.dll 14.0.0.0
  • Microsoft.SharePoint.Client.Runtime.dll 14.0.0.0

使用c#从Sharepoint库检索文件

通过下面的链接和解释解决:无法使用客户端对象模型从SharePoint库检索文件信息

脸部片段:

        CamlQuery qry = new CamlQuery();
        qry.ViewXml = "<View></View>";
        qry.FolderServerRelativeUrl = "/001/API/Asset Optimisation Interface/Asset Technical Data/";

我没想到服务器相对URL不是相对于ClientContext

中的位置的。