StorageLibraryChangeTrackerOptions Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Consente ai chiamanti di chiamare EnableWithOptions nel rilevamento modifiche per scegliere di tenere traccia di tutte le modifiche, tra cui l'ultimo ID modifica o solo l'ultimo ID modifica.
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
- Ereditarietà
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows 10, version 2104 (è stato introdotto in 10.0.20348.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v12.0)
|
Esempio
// 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();
}
}
}
Commenti
Per impostazione predefinita, l'abilitazione di un localizzatore di modifiche in una libreria o una cartella specifica tiene traccia di tutti i dettagli delle modifiche e tiene traccia dell'ultimo ID modifica. Impostando StorageLibraryChangeTrackerOptions::TrackChangeDetails su false e usando EnableWithOptions come l'esempio seguente, il sistema manterrà traccia dell'ultimo ID modifica che usa meno archiviazione di sistema.
Se l'applicazione non necessita di dettagli sulle modifiche, si tratta dell'approccio consigliato.
Costruttori
StorageLibraryChangeTrackerOptions() |
Costruttore per StorageLibraryChangeTrackerOptions da usare per configurare il comportamento del tracker delle modifiche per un oggetto StorageFolder o StorageLibrary. |
Proprietà
TrackChangeDetails |
Usato per determinare se il sistema tiene traccia di ogni singola modifica o solo dell'ultimo ID modifica per un determinato indicatore di modifica. |