Bagikan melalui


StorageLibraryLastChangeId Kelas

Definisi

Memungkinkan Anda melacak perubahan berdasarkan nilai unik yang mewakili perubahan terakhir yang diproses oleh layanan pengindeksan untuk StorageFolder atau StorageLibrary yang diberikan.

public ref class StorageLibraryLastChangeId sealed
/// [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 StorageLibraryLastChangeId final
[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 StorageLibraryLastChangeId
Public NotInheritable Class StorageLibraryLastChangeId
Warisan
Object Platform::Object IInspectable StorageLibraryLastChangeId
Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10, version 2104 (diperkenalkan dalam 10.0.20348.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v12.0)

Contoh

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

Properti

Unknown

Dikembalikan ketika jurnal USN meluap dan layanan tidak dapat mengikuti perubahan atau ada alasan lain id perubahan tidak dapat dihitung.

Berlaku untuk

Lihat juga