Tengo una utilidad que procesa un conjunto de archivos en un directorio; el proceso es relativamente lento (y hay muchos archivos) y así que he tratado de optimizar el proceso procesando solo los archivos que tienen una "última modificación" después de la última fecha de procesamiento.Windows: cómo determinar si un archivo ha sido modificado desde una fecha determinada
Normalmente esto funciona bien, sin embargo, he encontrado que copiar un archivo no cambia la fecha de la última modificación, por lo que hay varios escenarios que implican copiar archivos en los que el proceso omite ciertos archivos que han cambiado. ejemplo:
- El usuario procesa el directorio a las 9:00.
- Un archivo se copia desde este directorio y modificado para que tenga una fecha de última modificación de 9:30
- El directorio se procesa de nuevo a las 10:00
- El archivo modificado se copia de nuevo en el directorio a las 10:30
- Finalmente el directorio se procesa de nuevo a 11:00
a medida que la fecha de modificación del archivo dado es 09:30, y el directorio se procesó por última vez a las 10:00 el archivo es omitido cuando no debería ser
Desafortunadamente, lo anterior tiende a suceder con demasiada frecuencia en ciertas situaciones (como en un entorno colaborativo con control de fuente, etc.). Claramente mi lógica es defectuosa: lo que realmente necesito es una fecha de "última modificación o copia". ¿Existe tal cosa?
En su defecto, ¿hay otra manera de determinar rápidamente con una fiabilidad razonable si un archivo determinado ha cambiado?
Sí, sin embargo, esta es mi solución alternativa: espero que haya una forma de determinar si un archivo determinado ha cambiado (con una fiabilidad razonable) sin necesidad de leer el archivo. – Justin