Sharepoint学习笔记---SPList--清除List下的items与folders
如果你想要保留Sharepoint List/Document library本身(包括它的GUID),而只想要清除它的内容,可以使用如下方法来实现。
/// <summary>
/// 清除List下的所有items和folders
/// </summary>
private static void PurgeListChinese(SPList list)
{
// ===========================================================
// list.ItemCount返回的是包括Folders在内的所有items数目,
// 也即List.ItemCount并不区分文件和文件夹,而是统计全部记录的数量
// 由于list.Items.DeleteItemById()方法
// 无法删除Folder,所以你不能使用此方法来清除List内容
// ===========================================================
System.Collections.Hashtable hItems = new System.Collections.Hashtable(list.ItemCount);
// ===========================================================
// SPList.Items返回整个list下不包括folder在内的的所有items
// ===========================================================
foreach (SPListItem item in list.Items)
hItems.Add(item.ID, null);
// 清除list items
foreach (int ID in hItems.Keys)
list.Items.DeleteItemById(ID);
// 清除hashtable
hItems.Clear();
// ===========================================================
// SPList.Folders 返回整个list下的所有Folder
// regardless of parent folder containment
// ===========================================================
foreach (SPListItem item in list.Folders)
hItems.Add(item.ID, null);
// 清除Folder
foreach (int ID in hItems.Keys)
{
list.Folders.DeleteItemById(ID);
}
}
/// 清除List下的所有items和folders
/// </summary>
private static void PurgeListChinese(SPList list)
{
// ===========================================================
// list.ItemCount返回的是包括Folders在内的所有items数目,
// 也即List.ItemCount并不区分文件和文件夹,而是统计全部记录的数量
// 由于list.Items.DeleteItemById()方法
// 无法删除Folder,所以你不能使用此方法来清除List内容
// ===========================================================
System.Collections.Hashtable hItems = new System.Collections.Hashtable(list.ItemCount);
// ===========================================================
// SPList.Items返回整个list下不包括folder在内的的所有items
// ===========================================================
foreach (SPListItem item in list.Items)
hItems.Add(item.ID, null);
// 清除list items
foreach (int ID in hItems.Keys)
list.Items.DeleteItemById(ID);
// 清除hashtable
hItems.Clear();
// ===========================================================
// SPList.Folders 返回整个list下的所有Folder
// regardless of parent folder containment
// ===========================================================
foreach (SPListItem item in list.Folders)
hItems.Add(item.ID, null);
// 清除Folder
foreach (int ID in hItems.Keys)
{
list.Folders.DeleteItemById(ID);
}
}