StorageLibraryChangeTrackerOptions Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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é. |