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


StorageLibraryChangeTrackerOptions Класс

Определение

Позволяет вызывающим абонентам вызывать EnableWithOptions в средстве отслеживания изменений, чтобы отслеживать все изменения, включая идентификатор последнего изменения или только идентификатор последнего изменения.

public ref class StorageLibraryChangeTrackerOptions sealed
/// [Windows.Foundation.Metadata.Activatable(720896, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 720896)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StorageLibraryChangeTrackerOptions final
[Windows.Foundation.Metadata.Activatable(720896, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 720896)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StorageLibraryChangeTrackerOptions
function StorageLibraryChangeTrackerOptions()
Public NotInheritable Class StorageLibraryChangeTrackerOptions
Наследование
Object Platform::Object IInspectable 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();
    }
}
}

Комментарии

По умолчанию при включении средства отслеживания изменений в определенной библиотеке или папке будут отслеживаться все сведения об изменениях, а также отслеживаться идентификатор последнего изменения. Если задать для StorageLibraryChangeTrackerOptions::TrackChangeDetails значение false и использовать EnableWithOptions, как в примере ниже, система будет отслеживать только идентификатор последнего изменения, который использует меньше системного хранилища.

Если приложению не требуются сведения об изменениях, рекомендуется использовать этот подход.

Конструкторы

StorageLibraryChangeTrackerOptions()

Конструктор для StorageLibraryChangeTrackerOptions , который будет использоваться для настройки поведения средства отслеживания изменений для StorageFolder или StorageLibrary.

Свойства

TrackChangeDetails

Используется для определения того, будет ли система отслеживать каждое отдельное изменение или только идентификатор последнего изменения для данного средства отслеживания изменений.

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

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