c# - 无法访问站点共享点中文件的名称

标签 c# sharepoint sharepoint-2013

我有向网站添加新文件的方法。我正在尝试实现一种可以从站点删除文件的方法。目前该方法正在从最旧到最新删除文件。我想访问 NameDisplayName 以执行 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/

相关文章:

sharepoint - 使用客户端对象模型创建文档库

css - 所选链接的 Sharepoint 顶部导航 img

javascript - SharePoint JSOM : get SPFolder custom field value

javascript - 背景变化时的火灾事件

c# - 从抽象类传递枚举作为参数

c# - 如何使用 model.id 动态生成 HTML 属性值?

c# - Unity3d未显示编译器错误

用于千点分隔符的 C# DataFormatString (Asp.net mvc)

javascript - 将 Excel 工作表转换为 JSON 并将数据发送到 SharePoint 列表——改为获取空对象

c# - 如何使用 C# 从 Sharepoint 列表中选择由单个 JSON 响应组成的记录?