0

我需要查询 Sharepoint 2013 文档库并检索列表中字段值等于某个值的所有文档。我为此使用 Sharepoint 2013 CSOM 客户端 (Microsoft.SharePoint.Client)。

我可以使用以下代码成功检索除文档 URL 之外的所有 ListItem 字段:

ClientContext spContext = new ClientContext(spDocLibSite);
List cjList = spContext.Web.Lists.GetByTitle(spDocLibTitle);

CamlQuery listItemQuery = CamlQuery.CreateAllItemsQuery(100);
listItemQuery.ViewXml = "ViewXml that limits ListItems returned based on a field val";
ListItemCollection docItems = cjList.GetItems(listItemQuery);

spContext.Load(docItems);
spContext.ExecuteQuery();

foreach (ListItem listItem in docItems)
{
  Console.WriteLine(listItem["Title"]);   //  Works correctly with all fields except URL

  listItem.File.Name or Title;  // Does not work, get field not initialized error
}

File 属性似乎没有关于 Document 的任何数据,当我尝试访问其属性时出现错误。

我没有设置这个文档库,但它似乎是标准的,每个列表项都有一个文档,大约有十几个字段,其中包含有关文档的各种信息。如果我查看库/列表的字段列表,文档/URL 甚至没有列为字段。我能否以某种方式从我已经检索的 ListItem 类中获取文档的 URL?谢谢。

4

1 回答 1

4

经过更多研究后,我发现 FileRef 字段/列有一个相对 URL,我可以将其构建为完整的 URL:

string spDocUrl = spSiteUri.Scheme + "://" + spSiteUri.Host + listItem["FileRef"];    
于 2013-12-30T19:08:10.623 回答