【魄爺】 发表于 2015-9-29 13:37:27

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);
            }
      }  
页: [1]
查看完整版本: Sharepoint学习笔记---SPList--清除List下的items与folders