Me gustaría sondear el sistema de archivos en busca de archivos o subdirectorios cambiados, agregados o eliminados. Todos los cambios deben detectarse rápidamente pero sin ejercer presión sobre la máquina. El sistema operativo es Windows> = Vista, la parte observada es un directorio local.¿Cómo debo sondear una gran cantidad de archivos para cambios?
Normalmente, recurriría a un FileSystemWatcher, pero esto dio lugar a problemas con otros programas que intentaron mirar el mismo lugar (de forma destacada, Windows Explorer). Además, escuché que FSW no es realmente confiable incluso para carpetas locales y con un gran buffer.
El problema principal que tengo es que la cantidad de archivos y directorios puede ser muy grande (adivinar 7 dígitos). Simplemente ejecutar un control de todos los archivos cada segundo afectó notablemente a mi máquina.
Mi siguiente idea fue verificar diferentes partes de todo el árbol por segundo para reducir el impacto general, y posiblemente agregar un tipo de heurística, como revisar los archivos que cambian frecuentemente en una sucesión más rápida.
Me pregunto si hay patrones para este tipo de problema, o si alguien tiene experiencia con esta situación.
¿Todas las subcarpetas están en una sola raíz? ¿Qué tipo de problemas tienes con Windows Explorer? Aquí hay un patrón para asegurarse de no perder ningún mensaje. http://stackoverflow.com/questions/4967095/c-predict-file-system-events-on-folder-delete/4968391#4968391 – adrianm
@adrianm: Sí, la misma raíz. --- Explorer no actualizó su vista cuando se modificó una carpeta supervisada, supongo porque FSW robó sus eventos. – mafu