Поделиться через


StorageLibraryChangeTracker.Enable Метод

Определение

Перегрузки

Enable()

Включает отслеживание изменений для библиотеки хранилища.

Enable(StorageLibraryChangeTrackerOptions)

Включает отслеживание изменений для библиотеки хранилища для всех или последних изменений на основе идентификатора изменения.

Enable()

Включает отслеживание изменений для библиотеки хранилища.

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

Применяется к

Enable(StorageLibraryChangeTrackerOptions)

Включает отслеживание изменений для библиотеки хранилища для всех или последних изменений на основе идентификатора изменения.

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

Комментарии

Для приложений, интересующихся только идентификатором последнего изменения, система не будет хранить все записи изменений и раздуть хранилище на устройстве. В этом случае ReadBatchAsync всегда возвращает 0 записей.

См. также раздел

Применяется к