【问题标题】:SharePoint: How to create a folder in a list using web servicesSharePoint:如何使用 Web 服务在列表中创建文件夹
【发布时间】:2026-01-26 12:50:01
【问题描述】:

跟进我之前的问题here,其中我回答了如何在文档库中创建文件夹。我现在需要在列表中创建一个文件夹,但是 webDav 方法似乎不起作用。

有没有人有代码 sn-p 用于使用 web 服务或 webdav 在列表中创建文件夹?

谢谢

在以下代码中没有产生错误,但没有创建文件夹:

private void createFolderUsingWebDav(string siteAddress, string listAddress, string folderName)
        {

            string folderAddress = siteAddress + @"/" + listAddress + @"/" + folderName;
            HttpWebResponse response;
            try
            {
                HttpWebRequest request = (System.Net.HttpWebRequest)HttpWebRequest.Create(folderAddress);
                request.Credentials = wsLists.Credentials; // CredentialCache.DefaultCredentials;
                request.Method = "MKCOL";
                response = (System.Net.HttpWebResponse)request.GetResponse();
                response.Close();
            }
            catch (WebException ex)
            {
                if (ex.Status != WebExceptionStatus.ProtocolError)
                {
                    throw ex;
                }
            }
        }

在进一步检查中,正在创建物理文件夹,我通过将驱动器映射到共享点然后导航到列表文件夹来检查这一点,但这些文件夹在列表视图中不可见。我使用列表中的 Web 界面创建的文件夹也在视图中可见,但实际上我看不出这些与使用 web dav 创建的文件夹之间没有区别

【问题讨论】:

    标签: sharepoint wss


    【解决方案1】:

    找到一些有用的东西:

    XmlDocument doc = new XmlDocument();
                XmlElement batch = doc.CreateElement("Batch");
                string item = "<Method ID=\"1\" Cmd=\"New\">" +
                    "<Field Name=\"ID\">New</Field>" +
                    "<Field Name=\"FSObjType\">1</Field>" +
                    "<Field Name=\"BaseName\">" + folderName + "</Field></Method>";
    
                batch.SetAttribute("ListVersion", "1");
                batch.InnerXml = item;
    
                wsLists.UpdateListItems(listAddress, batch); 
    

    【讨论】:

      最近更新 更多