Partager via


Détection de modifications de fichier

Le fournisseur de synchronisation de fichiers Sync Framework détecte automatiquement les modifications apportées aux fichiers et dossiers dans l'étendue de synchronisation. 

Détection de modifications implicites et explicites

La détection des modifications doit être effectuée avant le début de la session de synchronisation. Par défaut, la détection des modifications est effectuée automatiquement la première fois que Sync Framework appelle GetChangeBatch ou ProcessChangeBatch sur le fournisseur.

Code managé Si l'application spécifie l'indicateur ExplicitDetectChanges lorsqu'elle initialise le fournisseur, l'application doit appeler la méthode DetectChanges explicitement avant de démarrer la session.

Code non managé Si l'application spécifie l'indicateur FILESYNC_INIT_FLAG_DISABLE_IMPLICIT_DETECT_CHANGES lorsqu'elle initialise le fournisseur, l'application doit appeler la méthode IFileSyncProvider::DetectChanges explicitement avant de démarrer la session.

Algorithme de détection des modifications intégré

Sync Framework a un algorithme intégré pour détecter les modifications apportées aux fichiers et dossiers dans l'étendue de synchronisation.

Une modification est signalée lorsque l'une des propriétés suivantes a changé :

  • Heure de la dernière modification sur un fichier.

  • Si le hachage est activé, valeur du hachage calculée pour le fichier.

  • Taille de fichier.

  • Nom du fichier ou du dossier. Cette valeur respecte la casse.

  • Tous les attributs de fichier gérés par le fournisseur.

Un déplacement ou un changement de nom de fichier est signalé lorsqu'un fichier qui comporte les mêmes heure de création, taille et valeur de hachage (lorsque le hachage est utilisé) qu'un fichier précédemment connu est trouvé, mais que ce fichier a un nom ou un chemin d'accès différent. Si plusieurs fichiers qui répondent à ces critères sont trouvés, Sync Framework agit comme si le fichier d'origine était supprimé et les nouveaux fichiers créés.

Sync Framework traite un déplacement ou un changement de nom de dossier comme si l'ancien dossier était supprimé et le nouveau dossier créé. Les fichiers dans le dossier sont signalés comme déplacements. Par conséquent, les données du fichier ne doivent habituellement pas être réenvoyées dans ce cas.

Calcul d'une valeur de hachage pour la détection des modifications

Si l'application spécifie l'indicateur CompareFileStreams (pour le code managé) ou FILESYNC_INIT_FLAG_USE_HASHING (pour le code non managé) lors de l'initialisation du fournisseur, le fournisseur calcule une valeur de hachage pour chaque fichier en utilisant tout le contenu du flux de fichiers. Le fournisseur compare ensuite ces valeurs de hachage, en comptant sur une détection des modifications plus fiable au prix d'une légère baisse des performances.

Voir aussi

Référence

FileSyncProvider

FileSyncOptions

Autres ressources

Synchronisation des fichiers

Interface IFileSyncProvider

Énumération FILESYNC_INIT_FLAGS