Freigeben über


StorageLibraryChangeTrackerOptions Klasse

Definition

Ermöglicht Aufrufern, EnableWithOptions auf der Änderungsnachverfolgung aufzurufen, um alle Änderungen zu verfolgen, einschließlich der letzten Änderungs-ID oder nur der letzten Änderungs-ID.

public ref class StorageLibraryChangeTrackerOptions sealed
/// [Windows.Foundation.Metadata.Activatable(720896, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 720896)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StorageLibraryChangeTrackerOptions final
[Windows.Foundation.Metadata.Activatable(720896, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 720896)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StorageLibraryChangeTrackerOptions
function StorageLibraryChangeTrackerOptions()
Public NotInheritable Class StorageLibraryChangeTrackerOptions
Vererbung
Object Platform::Object IInspectable StorageLibraryChangeTrackerOptions
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10, version 2104 (eingeführt in 10.0.20348.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v12.0)

Beispiele

// applications are expected to persist the previous value
UINT64 appsLastPersistedChangeId = StorageLibraryLastChangeId::Unknown();
StorageFolder folder = StorageFolder::GetFolderFromPathAsync(L"my folder path").get();

StorageLibraryChangeTracker tracker = folder.TryGetChangeTracker();
if (tracker != nullptr)
{
StorageLibraryChangeTrackerOptions ops;
ops.TrackChangeDetails(false);
tracker.Enable(ops);

StorageLibraryChangeReader reader = tracker.GetChangeReader();
if (reader != nullptr)
{
    UINT32 changeId = reader.GetLastChangeId();
    if ((changeId == StorageLibraryLastChangeId::Unknown())
    {
        ScanFolderSlow();
    }
    else if (changeId == 0)
    {
        // no changes in the storage folder yet, OR nothing has changed
        ProcessNormalApplicationStartup();
    }
    else if (changeId != appsLastPersistedChangeId)
    {
        // There have been new changes since we’ve last ran, process them
        appsLastPersistedChangeId = changeId;
        ScanFolderForChanges();
    }
    else
    {
        // changeId and our last persisted change id match, also normal application startup
        ProcessNormalApplicationStartup();
    }
}
}

Hinweise

Standardmäßig werden durch aktivieren einer Änderungsnachverfolgung für eine bestimmte Bibliothek oder einen bestimmten Ordner alle Änderungsdetails nachverfolgt und die letzte Änderungs-ID nachverfolgt. Wenn Sie StorageLibraryChangeTrackerOptions::TrackChangeDetails auf false festlegen und EnableWithOptions wie im folgenden Beispiel verwenden, verfolgt das System nur die letzte Änderungs-ID, die weniger Systemspeicher verbraucht.

Wenn Ihre Anwendung keine Details zu den Änderungen benötigt, wird dies empfohlen.

Konstruktoren

StorageLibraryChangeTrackerOptions()

Konstruktor für die StorageLibraryChangeTrackerOptions , die zum Einrichten des Verhaltens der Änderungsnachverfolgung für einen StorageFolder oder StorageLibrary verwendet werden soll.

Eigenschaften

TrackChangeDetails

Wird verwendet, um zu bestimmen, ob das System jede einzelne Änderung oder nur die letzte Änderungs-ID für eine bestimmte Änderungsnachverfolgung nachverfolgt.

Gilt für:

Weitere Informationen