StorageLibraryChangeReader.GetLastChangeId Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает уникальное значение, представляющее последнее изменение, обработанное службой индексирования для заданного StorageFolder или StorageLibrary.
public:
virtual unsigned long long GetLastChangeId() = GetLastChangeId;
uint64_t GetLastChangeId();
public ulong GetLastChangeId();
function getLastChangeId()
Public Function GetLastChangeId () As ULong
Возвращаемое значение
Допустимый идентификатор изменения (> 0), если были внесены изменения.
Возвращает значение 0, если с момента последнего чтения не было никаких изменений или изменений еще не произошло.
Возвращает StorageLibraryChangeId::Unknown, если средство отслеживания изменений не может вычислить идентификатор изменения или произошло слишком много изменений в файле и это значение переполняется.
Требования к Windows
Семейство устройств |
Windows 10, version 2104 (появилось в 10.0.20348.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v12.0)
|
Примеры
// 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();
}
}
}