Как программно удалить все элементы из корзины второго уровня в SharePoint 2007? - PullRequest
0 голосов
/ 16 июля 2009

В настоящее время у меня есть эта программа:

namespace EmptySiteCollectionRecycleBin
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite mySite = new SPSite("http://mysharepointsite"))
            {
                try
                {
                    mySite.RecycleBin.DeleteAll();
                    if (mySite != null)
                    {
                        mySite.Dispose();
                    }
                }
                catch (Exception ex) 
                {
                    Console.WriteLine(ex.Message);
                }
            }
            Console.WriteLine("Recycle bin emptied");
            Console.WriteLine("Press any key to exit");
            Console.ReadLine();
        }
    }
}

Может кто-нибудь сказать мне, как я могу убедиться, что при этом удаляются все элементы из «второго этапа recyclebin / AdminRecyleBin», как видно при переходе по этому URL в SharePoint: _layouts / AdminRecycleBin.aspx? View = 2

Я вижу, глядя на методы, есть это:

mySite.RecycleBin.MoveAllToSecondStage();

Есть что-то вроде "DeleteAllFromSecondStage ();"?

Или, может быть, что-то вроде:

mySite.RecycleBin.BinType = SPRecycleBinItemState.SecondStageRecycleBin;

1 Ответ

2 голосов
/ 17 июля 2009

Я понял, вот код, который удалит все элементы в SecondStageRecycleBin.

Соответствующей частью является «mySite.RecycleBin.BinType == SPRecycleBinType.SiteRecycleBin», чтобы определить, что вы удаляете элементы SecondStageRecycleBin.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;

namespace SharePointUtilities
{
    class EmptySiteCollectionRecycleBin
    {
        static void Main(string[] args)
        {
            #region SharePoint Delete RecycleBin Items
            using (SPSite mySite = new SPSite("http://mysharepointsite/"))
            {
                try
                {
                    //Empty the items from the SiteRecycleBin (the second stage recycle bin)    
                    if (mySite.RecycleBin.BinType == SPRecycleBinType.SiteRecycleBin)
                    {
                        int startCount = mySite.RecycleBin.Count;

                        //See the number of items before the delete
                        Console.Write("There are currently: " + startCount + " items in the Recycle Bin.\n");

                        //Delete all the items
                        mySite.RecycleBin.DeleteAll();

                        //See the number of items after the delete
                        Console.Write("\nThere are now: " + startCount + " items in the Recycle Bin, after deletion.\n");
                    }

                    //Make sure we dispose properly
                    if (mySite != null)
                    {
                        mySite.Dispose();
                    }
                }
                catch (Exception ex) 
                {
                    Console.WriteLine(ex.Message);
                }
            }
            #endregion
            Console.WriteLine("Recycle bin emptied");
            Console.WriteLine("Press any key to exit");
            Console.ReadLine();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...