StorageLibraryChangeReader.GetLastChangeId Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen eindeutigen Wert ab, der die letzte Änderung darstellt, die vom Indizierungsdienst für den angegebenen StorageFolder oder StorageLibrary verarbeitet wurde.
public:
virtual unsigned long long GetLastChangeId() = GetLastChangeId;
uint64_t GetLastChangeId();
public ulong GetLastChangeId();
function getLastChangeId()
Public Function GetLastChangeId () As ULong
Gibt zurück
Eine gültige Änderungs-ID (> 0), wenn Änderungen vorgenommen wurden.
Gibt 0 zurück, wenn seit dem letzten Lesevorgang keine Änderungen vorgenommen wurden oder noch keine Änderungen aufgetreten sind.
Gibt StorageLibraryChangeId::Unknown zurück, wenn der Änderungstracker die Änderungs-ID nicht berechnen kann oder zu viele Dateiänderungen vorgenommen wurden und dieser Wert überläuft.
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();
}
}
}