2009-11-04 63 views
0

關於我以前的問題here,其中我回答瞭如何在文檔庫中創建文件夾。我現在需要在列表中創建一個文件夾,但似乎webDav方法不起作用。SharePoint:如何使用網絡服務在列表中創建文件夾

有沒有人有使用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

回答

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); 
相關問題