StorageLibraryChangeReader.GetLastChangeId 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 StorageFolder 또는 StorageLibrary에 대한 인덱싱 서비스에서 처리한 마지막 변경 사항을 나타내는 고유 값을 가져옵니다.
public:
virtual unsigned long long GetLastChangeId() = GetLastChangeId;
uint64_t GetLastChangeId();
public ulong GetLastChangeId();
function getLastChangeId()
Public Function GetLastChangeId () As ULong
반환
변경 내용이 있는 경우 유효한 변경 ID(> 0)입니다.
마지막으로 읽은 이후 변경 내용이 없거나 아직 변경되지 않은 경우 0을 반환합니다.
변경 추적기가 변경 ID를 계산할 수 없거나 너무 많은 파일 변경이 발생하고 이 값이 오버플로되는 경우 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();
}
}
}