Сегодня надо было удалить 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);
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"), я на это сразу не обратил внимание, и потратил лишнее время в поисках почему оно не работает.
Комментариев нет:
Отправка комментария