Share via


SPWeb.GetChanges method

取得所有的網站目前的變更記錄檔中列出的變更。

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'宣告
Public Function GetChanges As SPChangeCollection
'用途
Dim instance As SPWeb
Dim returnValue As SPChangeCollection

returnValue = instance.GetChanges()
public SPChangeCollection GetChanges()

傳回值

Type: Microsoft.SharePoint.SPChangeCollection
所做的變更。

備註

變更記錄對查詢所傳回的變更總數可能會非常大。基於效能考量,變更會傳回的最多 2000年批次。這個多載方法會傳回記錄在記錄中的變更中的第一批次。

若要取得所有變更,而不是第一批次,直到它傳回 0 的變更,表示它已達到記錄結尾的集合,在迴圈中呼叫這個方法。使用從第一批次的最後變更的ChangeToken屬性來取得第二個批次,依此類推,直到您取得空集合。如需範例,請參閱GetChanges(SPChangeToken)方法。

注意事項注意事項

根據預設,變更記錄會保留資料的 60 天。您可以藉由設定ChangeLogRetentionPeriod屬性設定的保留期限。

Examples

此範例是使用GetChanges方法來建立包含變更記錄檔中列出變更的第一批次的相關資訊的記錄檔的主控台應用程式。

using System;
using System.IO;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite siteCollection = new SPSite("https://localhost"))
         {
            using (SPWeb webSite = siteCollection.RootWeb)
            {
               SPTimeZone timeZone = webSite.RegionalSettings.TimeZone;
               string fileName = "ChangeLog.txt";
               StreamWriter writer = File.AppendText(fileName);

               SPChangeCollection changes = webSite.GetChanges();

               foreach (SPChange change in changes)
               {
                  writer.WriteLine( "\r\nDate: {0}", timeZone.UTCToLocalTime(change.Time).ToString());
                  writer.WriteLine("Object type: {0}", change.GetType().ToString());
                  writer.WriteLine("Change type: {0}", change.ChangeType);
               }

               writer.WriteLine("\r\nTotal changes = {0:#,#}", changes.Count);
               writer.Flush();
               writer.Close();

               Console.WriteLine("{0} changes written to {1}", changes.Count, fileName);
            }
         }
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }
   }
}
Imports System
Imports System.IO
Imports Microsoft.SharePoint

Module ConsoleApp
   Sub Main()
      Using siteCollection As SPSite = New SPSite("https://localhost")
         Using webSite As SPWeb = siteCollection.RootWeb

            Dim timeZone As SPTimeZone = webSite.RegionalSettings.TimeZone
            Dim fileName As String = "ChangeLog.txt"
            Dim writer As StreamWriter = File.AppendText(fileName)

            Dim changes As SPChangeCollection = webSite.GetChanges()

            For Each change As SPChange In changes
               writer.WriteLine(vbCrLf + "Date: {0}", timeZone.UTCToLocalTime(change.Time).ToString())
               writer.WriteLine("Object type: {0}", change.GetType().ToString())
               writer.WriteLine("Change type: {0}", change.ChangeType)
            Next change

            writer.WriteLine(vbCrLf + "Total changes = {0:#,#}", changes.Count)
            writer.Flush()
            writer.Close()

            Console.WriteLine("{0} changes written to {1}", changes.Count, fileName)
         End Using
      End Using
      Console.Write(vbCrLf + "Press ENTER to continue...")
      Console.ReadLine()
   End Sub
End Module

請參閱

參照

SPWeb class

SPWeb members

GetChanges overload

Microsoft.SharePoint namespace

其他資源

Using the Change Log