StorageLibraryChangeTrackerOptions Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Permite a los autores de llamadas llamar a EnableWithOptions en el seguimiento de cambios para elegir realizar un seguimiento de todos los cambios, incluido el último identificador de cambio, o solo el último identificador de cambio.
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
- Herencia
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10, version 2104 (se introdujo en la versión 10.0.20348.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v12.0)
|
Ejemplos
// 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();
}
}
}
Comentarios
De forma predeterminada, al habilitar un seguimiento de cambios en una biblioteca o carpeta específica, se realizará un seguimiento de todos los detalles de los cambios, así como del último identificador de cambio. Al establecer StorageLibraryChangeTrackerOptions::TrackChangeDetails en false y usando EnableWithOptions como en el ejemplo siguiente, el sistema solo realizará un seguimiento del último identificador de cambio que usa menos almacenamiento del sistema.
Si la aplicación no necesita detalles sobre los cambios, este es el enfoque recomendado.
Constructores
StorageLibraryChangeTrackerOptions() |
Constructor para StorageLibraryChangeTrackerOptions que se va a usar para configurar el comportamiento del seguimiento de cambios para storageFolder o StorageLibrary. |
Propiedades
TrackChangeDetails |
Se usa para determinar si el sistema realizará un seguimiento de cada cambio individual o solo el último identificador de cambio de un seguimiento de cambios determinado. |