Partager via


StorageLibraryChangeTrackerOptions Classe

Définition

Permet aux appelants d’appeler EnableWithOptions sur le suivi des modifications pour choisir de suivre toutes les modifications, y compris l’ID de la dernière modification, ou uniquement l’ID de la dernière modification.

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
Héritage
Object Platform::Object IInspectable StorageLibraryChangeTrackerOptions
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10, version 2104 (introduit dans 10.0.20348.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v12.0)

Exemples

// 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();
    }
}
}

Remarques

Par défaut, l’activation d’un suivi des modifications sur une bibliothèque ou un dossier spécifique permet de suivre tous les détails des modifications et de suivre l’ID de la dernière modification. En définissant StorageLibraryChangeTrackerOptions::TrackChangeDetails sur false et en utilisant EnableWithOptions comme dans l’exemple ci-dessous, le système effectue uniquement le suivi de l’ID de dernière modification qui utilise moins de stockage système.

Si votre application n’a pas besoin de détails sur les modifications, il s’agit de l’approche recommandée.

Constructeurs

StorageLibraryChangeTrackerOptions()

Constructeur pour les StorageLibraryChangeTrackerOptions à utiliser pour configurer le comportement du suivi des modifications pour un StorageFolder ou StorageLibrary.

Propriétés

TrackChangeDetails

Permet de déterminer si le système effectue le suivi de chaque modification individuelle ou uniquement de la dernière modification d’un suivi des modifications donné.

S’applique à

Voir aussi