问题描述
对象引用未设置为服务器上对象的实例。的 对象与属性File相关联
我试图计算此文件夹url中的文件数,因此它可以计算为true,但是当我打印文件名时,它在第this.lblMessage.Text = listItems.First().File.Name.ToString();
行有错误
这是我的代码:
var targetSiteURL = new Uri("https://mycompany.sharepoint.com/sites/test");
ClientContext cxt = new ClientContext(targetSiteURL.GetLeftPart(UriPartial.Authority));
cxt.Credentials = new SharePointOnlineCredentials(login,securePassword);
var list = cxt.Web.GetList("/sites/test/Shared%20Documents");
var listItems = list.GetItems(new CamlQuery());
cxt.Load(listItems,items => items.Include(
item => item.File));
cxt.ExecuteQuery();
this.lblMessage.Text = listItems.First().File.Name.ToString();
解决方法
使用Caml查询仅将库中的文件作为项过滤。File.Name用于文件而非文件夹:
var list = cxt.Web.GetList("/sites/test/Shared%20Documents");
Microsoft.SharePoint.Client.CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml =
@"<View Scope='RecursiveAll'>
<Query>
<Where><Eq><FieldRef Name='FSObjType' /><Value Type='Integer'>0</Value></Eq></Where>
</Query>
</View>";
var listItems = list.GetItems(camlQuery);
cxt.Load(listItems,items => items.Include(item => item.File));
cxt.ExecuteQuery();
Console.WriteLine(listItems.First().File.Name);