SPWeb.GetChanges-Methode
Ruft alle Änderungen, die in der aktuellen Änderungsprotokolls für die Website aufgelistet.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
Public Function GetChanges As SPChangeCollection
'Usage
Dim instance As SPWeb
Dim returnValue As SPChangeCollection
returnValue = instance.GetChanges()
public SPChangeCollection GetChanges()
Rückgabewert
Typ: Microsoft.SharePoint.SPChangeCollection
Die Änderungen.
Hinweise
Die Gesamtzahl der Änderungen zurückgegeben, die von einer Abfrage für das Änderungsprotokoll kann sehr groß sein. Aus Gründen der Systemleistung sind Änderungen in Batches von bis zu 2000 zurückgegeben. Diese Überladung-Methode gibt nur die erste Gruppe von Änderungen im Protokoll aufgezeichnet.
Wenn Sie alle Änderungen anstatt nur die erste Gruppe erhalten möchten, rufen Sie diese Methode in einer Schleife, bis es gibt eine Auflistung mit 0 Änderungen, womit angezeigt wird, dass sie das Ende des Protokolls erreicht wurde. Verwenden Sie die ChangeToken -Eigenschaft von der letzten Änderung der ersten batchnamen zum Abrufen der zweiten Batch und So weiter, bis Sie eine leere Auflistung erhalten. Ein Beispiel finden Sie unter der GetChanges(SPChangeToken) -Methode.
Hinweis
Standardmäßig behält das Änderungsprotokoll für 60 Tage Daten. Sie können die Dauer der Beibehaltung konfigurieren, indem die ChangeLogRetentionPeriod -Eigenschaft.
Beispiele
Das Beispiel ist eine Konsolenanwendung, die die GetChanges -Methode verwendet, um das Erstellen einer Protokolldatei mit Informationen zu den ersten Teil der Änderungen im Änderungsprotokoll aufgeführt.
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
Siehe auch
Referenz
Microsoft.SharePoint-Namespace