Detectar cambios de archivos
El proveedor de sincronización de archivos de Sync Framework detecta automáticamente los cambios que se realizaron en los archivos y carpetas en el ámbito de sincronización.
Detección de cambios implícita o explícita
La detección de cambios se debe realizar antes de que se inicie la sesión de sincronización. De forma predeterminada, la detección de cambios se efectúa automáticamente la primera vez que Sync Framework llama a GetChangeBatch o a ProcessChangeBatch en el proveedor.
Código administrado: si la aplicación especifica la marca ExplicitDetectChanges cuando inicializa el proveedor, debe llamar explícitamente al método DetectChanges antes de iniciar la sesión.
Código no administrado: si la aplicación especifica la marca FILESYNC_INIT_FLAG_DISABLE_IMPLICIT_DETECT_CHANGES cuando inicializa el proveedor, la aplicación debe llamar explícitamente al método IFileSyncProvider::DetectChanges antes de iniciar la sesión.
Algoritmo integrado de detección de cambios
Sync Framework dispone de un algoritmo integrado para detectar los cambios que se realizan en los archivos y carpetas en el ámbito de sincronización.
Se notifica un cambio cuando alguna de las propiedades siguientes ha cambiado:
La hora de la última modificación en un archivo.
Si hay un algoritmo hash habilitado, el valor del hash que se calculó para el archivo.
El tamaño de archivo.
El archivo o nombre de la carpeta. Esta comprobación distingue entre mayúsculas y minúsculas.
Cualquiera de los atributos de archivo que controla el proveedor.
Se notifica un movimiento o cambio de nombre del archivo cuando se encuentra un archivo que tiene la misma hora de creación, tamaño y valor hash (si se usa un algoritmo hash) que un archivo conocido, pero un nombre o ruta de acceso diferentes. Si se encuentran varios archivos que cumplen estos criterios, Sync Framework actúa como si se hubiera eliminado el archivo original y se hubieran creado archivos nuevos.
Sync Framework trata un movimiento de carpeta o un cambio de nombre como si la carpeta anterior se hubiera eliminado y se hubiera creado una carpeta nueva. Los archivos de la carpeta se notifican como movimientos. Por consiguiente, en este caso, normalmente no es necesario volver a enviar los datos de archivo.
Calcular un valor hash para la detección de cambios
Si la aplicación especifica la marca CompareFileStreams (en el código administrado) o la marca FILESYNC_INIT_FLAG_USE_HASHING (en el código no administrado) cuando inicializa el proveedor, este calcula un valor hash para cada archivo utilizando todo el contenido de la secuencia de archivo. A continuación, el proveedor compara estos valores hash, con lo que se permite una detección de cambios más eficaz a costa de una ligera disminución del rendimiento.
Vea también
Referencia
Interfaz IFileSyncProvider
Enumeración FILESYNC_INIT_FLAGS
FileSyncProvider
FileSyncOptions