다음을 통해 공유


StorageLibraryChangeTracker.Enable 메서드

정의

오버로드

Enable()

스토리지 라이브러리에 대한 변경 내용 추적을 사용하도록 설정합니다.

Enable(StorageLibraryChangeTrackerOptions)

변경 ID에 따라 모든 변경 내용 또는 최신 변경 내용에서 스토리지 라이브러리에 대한 변경 내용 추적을 사용하도록 설정합니다.

Enable()

스토리지 라이브러리에 대한 변경 내용 추적을 사용하도록 설정합니다.

public:
 virtual void Enable() = Enable;
void Enable();
public void Enable();
function enable()
Public Sub Enable ()

적용 대상

Enable(StorageLibraryChangeTrackerOptions)

변경 ID에 따라 모든 변경 내용 또는 최신 변경 내용에서 스토리지 라이브러리에 대한 변경 내용 추적을 사용하도록 설정합니다.

public:
 virtual void Enable(StorageLibraryChangeTrackerOptions ^ options) = Enable;
/// [Windows.Foundation.Metadata.Overload("EnableWithOptions")]
void Enable(StorageLibraryChangeTrackerOptions const& options);
[Windows.Foundation.Metadata.Overload("EnableWithOptions")]
public void Enable(StorageLibraryChangeTrackerOptions options);
function enable(options)
Public Sub Enable (options As StorageLibraryChangeTrackerOptions)

매개 변수

특성

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();
    }
}
}

설명

마지막 변경 ID에만 관심이 있는 애플리케이션의 경우 시스템은 모든 변경 레코드를 저장하지 않고 디바이스에 스토리지를 bloat합니다. 이 경우 ReadBatchAsync는 항상 0 레코드를 반환합니다.

추가 정보

적용 대상