我有向网站添加新文件的方法。我正在尝试实现一种可以从站点删除文件的方法。目前该方法正在从最旧到最新删除文件。我想访问 Name
或 DisplayName
以执行 if
检查的位置。当我尝试访问 listitem.DisplayName
时遇到以下错误:
“属性或字段 'DisplayName' 尚未初始化。尚未请求或请求尚未执行。可能需要显式请求。”
如果有人可以帮助我了解如何允许访问 listitem.DisplayName
,我将不胜感激!
DeleteAFile()
public static void DeleteAFile(string sFileName, string sFldrLoc)
{
ClientContext clientContext = new ClientContext(siteURL);
List spList = clientContext.Web.Lists.GetByTitle(sFldrLoc);
CamlQuery query = new CamlQuery();
ListItemCollection listItems = spList.GetItems(query);
clientContext.Load(listItems);
clientContext.ExecuteQuery();
foreach (ListItem listitem in listItems)
{
Console.WriteLine(listitem.DisplayName); // Line that is throwing error
// listitem.DeleteObject();
clientContext.ExecuteQuery();
}
}
最佳答案
已解决
感谢 Thriggle 提供的链接帮助我解决了这个问题。更新代码如下:
DeleteAFile()
/// <summary>
/// Will list out all the items within a Site, conduct a search and delete the item when found.
/// </summary>
/// <param name="sFileName"></param>
/// <param name="sFldrLoc"></param>
public static void DeleteAFile(string sFileName, string sFldrLoc)
{
ClientContext clientContext = new ClientContext(siteURL);
Web web = clientContext.Web;
ListCollection collList = web.Lists;
List oList = collList.GetByTitle(sFldrLoc);
CamlQuery query = new CamlQuery();
query.ViewXml = "<View><Query><Where><Leq>" +
"<FieldRef Name='ID'/><Value Type='Number'>100</Value>" +
"</Leq></Where></Query><RowLimit>50</RowLimit></View>";
ListItemCollection collListItem = oList.GetItems(query);
clientContext.Load(collListItem,
items => items.IncludeWithDefaultProperties(
item => item.DisplayName));
clientContext.ExecuteQuery();
foreach (ListItem listitem in collListItem)
{
if (listitem.DisplayName.Equals(sFileName))
{
listitem.DeleteObject();
clientContext.ExecuteQuery();
Console.WriteLine("{0}, has been deleted sucessfully!", listitem.DisplayName);
}
}
}
关于c# - 无法访问站点共享点中文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37014453/