четверг, 9 декабря 2010 г.

SharePoint: How to delete folder with items using web services.

Достаточно часто пишу небольшие примерчики работы с SharePoint, на которых проверяю те или иные механизмы SharePoint. Возможно кому то эти примеры могут пригодится.

Сегодня надо было удалить folder с файлами внутри Document Library используя Web Services. Для этого есть Lists.UpdateListItems

Вот что у меня вышло:
var url = "http://server/subsite/_vti_bin/Lists.asmx";

var xml = "<Batch OnError=\"Continue\" PreCalc=\"TRUE\" ListVersion=\"0\">"+
                "<Method ID=\"1\" Cmd=\"Delete\">"+
                "<Field Name=\"ID\">10</Field>"+
                "<Field Name=\"FileRef\">http://server/subsite/DocLib/Folder</Field>" +
                "</Method>"+
                "</Batch>";

var listWebSvc = new ListsSvc.Lists();
listWebSvc.Url = url;
listWebSvc.Credentials = System.Net.CredentialCache.DefaultCredentials;
listWebSvc.PreAuthenticate = true;

var xmlDoc = new System.Xml.XmlDocument();
xmlDoc.LoadXml(xml);

var res = listWebSvc.UpdateListItems("DocLib",xmlDoc);
 

Хочу обратить внимание на то что в FileRef нельзя указывать путь относительно сайта ("/DocLib/Folder"), я на это сразу не обратил внимание, и потратил лишнее время в поисках почему оно не работает.

Комментариев нет: