StorageLibraryChangeReader.GetLastChangeId Méthode
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.
Obtient une valeur unique représentant la dernière modification traitée par le service d’indexation pour le StorageFolder ou StorageLibrary donné.
public:
virtual unsigned long long GetLastChangeId() = GetLastChangeId;
uint64_t GetLastChangeId();
public ulong GetLastChangeId();
function getLastChangeId()
Public Function GetLastChangeId () As ULong
Retours
ID de modification valide (> 0) s’il y a eu des modifications.
Retourne 0 s’il n’y a eu aucune modification depuis la dernière lecture ou si aucune modification n’a encore eu lieu.
Retourne StorageLibraryChangeId::Unknown si le suivi des modifications ne peut pas calculer l’ID de modification, ou si trop de modifications de fichier se sont produites et que cette valeur déborde.
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();
}
}
}