Share via


Rilevamento di modifiche apportate a file

Sync Services for File Systems rileva automaticamente le modifiche apportate a file e cartelle nell'ambito della sincronizzazione.

Rilevamento delle modifiche implicito ed esplicito

Il rilevamento delle modifiche deve essere eseguito prima dell'avvio della sessione di sincronizzazione. Per impostazione predefinita, il rilevamento delle modifiche viene eseguito automaticamente la prima volta che Sync Framework chiama GetChangeBatch o ProcessChangeBatch nel provider.

Codice gestito Se l'applicazione specifica il flag ExplicitDetectChanges quando inizializza il provider, è necessaria la chiamata esplicita al metodo DetectChanges prima dell'avvio della sessione.

Codice non gestito Se l'applicazione specifica il flag FILESYNC_INIT_FLAG_DISABLE_IMPLICIT_DETECT_CHANGES quando inizializza il provider, è necessaria la chiamata esplicita al metodo IFileSyncProvider::DetectChanges prima dell'avvio della sessione.

Algoritmo predefinito di rilevamento delle modifiche

Sync Services for File Systems include un algoritmo predefinito per il rilevamento delle modifiche apportate a file e cartelle nell'ambito della sincronizzazione.

Una modifica viene segnalata quando viene modificata una delle seguenti proprietà:

  • Ora dell'ultima modifica di un file.

  • Se l'hash è abilitato, valore hash calcolato per il file.

  • Dimensione del file.

  • Nome del file o della cartella. Per questo controllo viene applicata la distinzione tra maiuscole e minuscole.

  • Qualsiasi attributo del file gestito dal provider.

Viene segnalato lo spostamento o la ridenominazione di un file quando viene rilevato un file con ora di creazione, dimensione e valore hash (se viene utilizzato l'hash) uguali a un file precedentemente noto, ma con un nome o un percorso diverso. Se vengono rilevati più file che soddisfano questi criteri, Sync Services agisce come se il file originale fosse stato eliminato e ne fossero stati creati di nuovi.

In Sync Services lo spostamento o la ridenominazione di una cartella equivalgono all'eliminazione della cartella precedente e alla creazione di una nuova cartella. I file nella cartella vengono segnalati come spostamenti. In questo caso, pertanto, non è in genere necessario reinviare i dati del file.

Calcolo di un valore hash per il rilevamento delle modifiche

Se l'applicazione specifica il flag CompareFileStreams (per il codice gestito) o il flag FILESYNC_INIT_FLAG_USE_HASHING (per il codice non gestito) quando inizializza il provider, quest'ultimo calcola un valore hash per ogni file utilizzando tutto il contenuto del flusso di file. Il provider confronta quindi questi valori hash, consentendo un rilevamento delle modifiche più affidabile con una lieve riduzione delle prestazioni.

Vedere anche

Riferimento

Interfaccia IFileSyncProvider
Enumerazione FILESYNC_INIT_FLAGS
FileSyncProvider
FileSyncOptions

Altre risorse

Sync Services for File Systems