Pregunta

¿El método NSFileManager contentsEqualAtPath:andPath: crear una suma de control dinámico para comparar dos archivos, ¿se abre el encabezado del archivo y comparar archivo detalles del encabezado o utiliza algún otro método para comparar?

Tengo una lista de 200.000 o más archivos para comparar los archivos locales donde se van a comparar con los archivos en un volumen de servidor remoto. Los archivos locales habrían sido copiado del volumen del servidor remoto en algún momento en el pasado, y me va a caminar la lista de archivos para comparar cada uno y luego copiar sobre los archivos nuevos a partir del volumen servidor remoto a la máquina local (sobrescribir cualquier existente). No hay ninguna garantía de que los archivos de servidor remoto fueron creados por el usuario local (y más que probable que no habrían sido).

A medida que los archivos son pequeñas (aprox. 4 K en tamaño) una operación de comparación de archivos complejo podría tomar casi tan larga como una operación de copia.

Esta operación podría (posiblemente pero no probable) ocurrir varias veces en una sesión de usuario, así que necesito para asegurarse de que estoy usando el método más eficiente para el control.

La operación en sí se ejecutará en un hilo separado por lo que no tienen problemas de atar al usuario mientras que se complete la operación.

he comenzado la ejecución de probar esto, pero estaba interesado en ver si alguien más ha tenido alguna experiencia en la comparación de miles de archivos de forma rápida con el fin de determinar qué archivos deben actualizarse si existe uno nuevo. Y si usted tiene, ¿tiene alguna punteros o trampas para evitar?

Cualquier consejo muy apreciada.

Actualizar

Pensando en esto un poco más, puede ser que sea más beneficioso para mantener un archivo que pistas de la última fecha y hora actualizada de cualquier imagen modificados y mantener un archivo local que hace lo mismo y simplemente comparar esos dos documentos ... se actualizará más a medida me progreso.

¿Fue útil?

Solución

A mi me parece que para los directorios sólo los nombres de archivo (y nombres de archivos de subdirectorios) se comparan. Sólo se compara el contenido del archivo si se pasa de forma explícita las rutas de archivos con el método.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top