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);
            }
        }

 

posted @ 2011-10-08 09:17  wsdj  阅读(1582)  评论(0编辑  收藏  举报