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 のみに関心があるアプリケーションの場合、システムはすべての変更レコードを格納し、デバイス上のストレージを膨らむわけではありません。 この場合、ReadBatchAsync は常に 0 個のレコードを返します。

こちらもご覧ください

適用対象