Tengo un programa que compara archivos en dos carpetas. Quiero detectar si se ha cambiado el nombre de un archivo, determinar el archivo más nuevo (más recientemente renombrado) y actualizar el nombre en el archivo anterior para que coincida.¿Cómo puedo determinar cuándo se renombró el archivo más recientemente?
Para lograr esto, verificaría si el archivo más nuevo es poco a poco idéntico al anterior, y si lo es, simplemente cambie el nombre del archivo anterior para que coincida con el nuevo.
El problema es que no tengo nada clave para decirme qué archivo se ha cambiado el nombre más recientemente.
Me encantaría una propiedad como FileInfo.LastModified, pero para los archivos que se han renombrado.
Ya he analizado soluciones como FileSystemWatcher, y eso no es realmente lo que estoy buscando. Me gustaría poder ejecutar mi sincronizador cuando lo desee, sin tener que preocuparme por algún proceso dedicado que rastree el estado de una carpeta.
¿Alguna idea?
... y por supuesto, combínelo con 'LastModified'. –
Ya guardo hashes de directorios en cada extremo. La coincidencia de datos bit por bit ya es posible. Solo esperaba poder ahorrar algo de ancho de banda al sincronizar en redes lentas moviendo archivos preexistentes. Parece que no hay una forma específica que no sea NTFS de hacer esto. –
Esto podría funcionar sobre los controladores asignados (o recursos compartidos de red), siempre que el volumen fuente sea NTFS. Si aún no lo ha encontrado, puede ser de alguna ayuda: http://www.codeproject.com/KB/cs/ntfsstreams.aspx –