Preface
Recently thequestion was asked in the newsgroups about deleting a large number of itemsfrom SharePoint (WSS) in the fastest way. I had, inone ifmyprojects,needed to remove a large number of items from SharePointand the best way Ifound were to use 'ProcessBatchData' as it avoided the API and was considerablyfaster.
1. Delete Common List
1.1 CAML format
<?xml version="1.0"encoding="UTF-8"?>
<Batch>
<Method>
<SetListScope="Request">3010913d-9373-44ec-a799-0bf564cb0d66</SetList>
<SetVar Name="Cmd">DELETE</SetVar>
<SetVar Name="ID">1</SetVar>
</Method>
</Batch>
1.2 C# source code implementation
StringBuilder sbDelete = new StringBuilder();
sbDelete.Append("<?xml version=\"1.0\"encoding=\"UTF-8\"?><Batch>");
foreach (SPListItem item in CurrentList.Items)
{
sbDelete.Append("<Method>");
sbDelete.Append("<SetListScope=\"Request\">" + CurrentList.ID +"</SetList>");
sbDelete.Append("<SetVarName=\"ID\">" + Convert.ToString(item.ID) +"</SetVar>");
sbDelete.Append("<SetVarName=\"Cmd\">Delete</SetVar>");
sbDelete.Append("</Method>");
}
sbDelete.Append("</Batch>");
try
{
SPContext.Current.Site.RootWeb.ProcessBatchData(sbDelete.ToString());
}
catch (Exception ex)
{
Console.WriteLine("Delete failed: " +ex.Message);
throw;
}
2. Delete Documentlibrary list
2.1 CAML ( Collaborative Application Markup Language format
<?xml version="1.0"encoding="UTF-8"?>
<Batch>
<Method ID='1' Cmd='Delete'>
<Field Name='ID'>1</Field>
<Field Name='FileRef'>http://basesmcdev/sites/tester1/myfile.bmp </Field>
</Method>
</Batch>
2.2 C# source code implementation
SPSecurity.RunWithElevatedPrivileges(delegate ()
{
using (SPSitesite=new SPSite("http://virus/sites/intranet" ))
{
using (SPWebweb=site.OpenWeb("team" ))
{
site.AllowUnsafeUpdates=true ;
web.AllowUnsafeUpdates=true ;
SPListlist=web.Lists["documentExample " ];
StringBuildersbDelete=new StringBuilder();
sbDelete.Append("<?xmlversion=\" 1.0 \"encoding=\" UTF-8 \"?><Batch>" );
foreach (SPListItemitemin list.Items)
{
sbDelete.Append("<Method>" );
sbDelete.Append("<SetListScope=\" Request\">" +list.ID+"</SetList>" );
sbDelete.Append("<SetVarName=\" ID\">" +Convert.ToString(item.ID)+"</SetVar>" );
sbDelete.Append("<SetVarName=\" Cmd\">Delete</SetVar>" );
sbDelete.Append("<SetVarName=\" owsfileref\">" +item.GetFormattedValue("FileRef" )+"</SetVar>" );
sbDelete.Append("</Method>" );
}
sbDelete.Append("</Batch>" );
try
{
Console.WriteLine(web.ProcessBatchData(sbDelete.ToString()));
}
catch
{
throw ;
}
site.AllowUnsafeUpdates=false ;
web.AllowUnsafeUpdates=false ;
}
}
});
Reference documentation
1.http://www.cnblogs.com/laputa-sky/archive/2008/10/21/1299867.html
2.http://www.cnblogs.com/virusswb/archive/2009/01/21/1379275.html
3.http://msdn.microsoft.com/zh-cn/library/ms414322(v=office.14).aspx
4.http://msdn.microsoft.com/zh-cn/library/ms426449(v=office.14).aspx
5.Delete Folder http://platinumdogs.me/2009/07/13/delete-a-folder-from-a-sharepoint-document-library/
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com