Question

Est-ce que la méthode NSFileManager contentsEqualAtPath:andPath: créer une somme de contrôle dynamique pour comparer deux fichiers, est-il ouvrir l'en-tête de fichier et de comparer les détails d'en-tête de fichier ou faut-il utiliser une autre méthode pour comparer?

J'ai une liste de 200.000 ou si des fichiers à comparer où les fichiers locaux sont à comparer avec les fichiers sur un volume de serveur distant. Les fichiers locaux auraient été copiés à partir du volume de serveur distant à un moment donné dans le passé, et je marcherai la liste des fichiers à comparer chaque puis copier sur tous les nouveaux fichiers à partir du volume de serveur distant sur la machine locale (écraser tout existant). Il n'y a aucune garantie que les fichiers de serveur à distance ont été créés par l'utilisateur local (et plus que probable qu'ils auraient pas été).

Les fichiers sont de petite taille (environ. 4k) un dossier complexe opération de comparaison peut prendre presque aussi longtemps que une opération de copie.

Cette opération pourrait (théoriquement, mais peu probable) se plusieurs fois dans une session utilisateur, alors je dois vous assurer que je suis en utilisant la méthode la plus efficace pour le contrôle.

L'opération elle-même se déroulera sur un thread séparé je n'ai donc pas de problèmes de lier l'utilisateur tandis que les finalise de fonctionnement.

J'ai commencé la mise en œuvre de tester cela, mais était intéressé pour voir si quelqu'un d'autre a eu une expérience comparant des milliers de fichiers rapidement afin de déterminer quels fichiers ont besoin de mettre à jour si une version plus récente existe. Et si vous avez, avez-vous des pointeurs ou les pièges à éviter?

Un conseil très apprécié.

Mise à jour

En pensant à cet un peu plus, il pourrait être plus avantageux de garder un fichier qui suit la dernière mise à jour horodatage des images modifiées et garder un fichier local qui fait la même chose et il suffit de comparer ces deux documents ... mettra à jour plus que Je progresse.

Était-ce utile?

La solution

Il me semble que pour les répertoires que les noms de fichiers (et les noms de fichiers de sous-répertoires) sont comparés. Il compare uniquement le contenu du fichier si vous passez explicitement les chemins de fichiers à la méthode.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top