我想从Sharepoint团队中的库文件夹中检索文件。我确切知道该文件的确切位置,但我不知道它的全名。
该文件夹的完整网址为: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中使用RecursiveAll来查询文件。不幸的是,子文件夹中会有类似命名的文件,这些文件是我不感兴趣的。
以下代码:
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文档似乎相当轻松!
找到我感兴趣的文件后,我想将其下载到本地驱动器。
任何帮助将不胜感激!
备注
答案 0 :(得分:1)
通过下面的链接和说明解决: Unable to retrieve file information from SharePoint library using Client Object Model
Relavent片段:
CamlQuery qry = new CamlQuery();
qry.ViewXml = "<View></View>";
qry.FolderServerRelativeUrl = "/001/API/Asset Optimisation Interface/Asset Technical Data/";
我没想到服务器相对URL与ClientContext中的位置无关