Share via


StorageLibraryChangeTrackerOptions Classe

Definizione

Consente ai chiamanti di chiamare EnableWithOptions nel rilevamento modifiche per scegliere di tenere traccia di tutte le modifiche, tra cui l'ultimo ID modifica o solo l'ultimo ID modifica.

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
Ereditarietà
Object Platform::Object IInspectable StorageLibraryChangeTrackerOptions
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10, version 2104 (è stato introdotto in 10.0.20348.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v12.0)

Esempio

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

Commenti

Per impostazione predefinita, l'abilitazione di un localizzatore di modifiche in una libreria o una cartella specifica tiene traccia di tutti i dettagli delle modifiche e tiene traccia dell'ultimo ID modifica. Impostando StorageLibraryChangeTrackerOptions::TrackChangeDetails su false e usando EnableWithOptions come l'esempio seguente, il sistema manterrà traccia dell'ultimo ID modifica che usa meno archiviazione di sistema.

Se l'applicazione non necessita di dettagli sulle modifiche, si tratta dell'approccio consigliato.

Costruttori

StorageLibraryChangeTrackerOptions()

Costruttore per StorageLibraryChangeTrackerOptions da usare per configurare il comportamento del tracker delle modifiche per un oggetto StorageFolder o StorageLibrary.

Proprietà

TrackChangeDetails

Usato per determinare se il sistema tiene traccia di ogni singola modifica o solo dell'ultimo ID modifica per un determinato indicatore di modifica.

Si applica a

Vedi anche