windows inotify

¿Hay algo como inotify en Windows?



(8)

Con el sistema operativo Linux, existe el subsistema ionotify que notifica una aplicación de cambios al sistema de archivos.

Sin embargo, soy principalmente un usuario de Windows, entonces me preguntaba si existe una forma similar de monitorear los cambios en el sistema de archivos.




FileSystemWatcher () no es confiable debido principalmente al hecho de que el manejo de errores para el búfer de Watcher es más o menos incompleto. Debido a la falta de ruta y a la información detallada sobre el manejo de errores, Microsoft no le ofrece ninguna forma de recuperar o sondear manualmente el directorio de trabajo.

El JNotify para Windows tampoco es confiable porque este bug ^ se deriva de win32. JNotify usa win32. Por lo tanto, no es diferente de FileSystemWatcher ().


Hice un poco de búsqueda, parece recordar haber visto algo similar para Windows. Hay FileSystemWatcher para .NET. Es principalmente para NT o XP y hacia adelante.


Un poco tarde pero ...

Windows tiene una función similar a los eventos OSX mediante la cual puede supervisar eventos sin ejecutar una aplicación. El Windows USN Journal realiza un seguimiento de todos los cambios de archivos. Jeffrey Richter (autor de Advanced Windows) escribió un excelente artículo con ejemplos de trabajo para MSDN Journal.

Documentación de MSDN para USN Change Journals.

Los diarios de cambio de USN son probablemente mejores si está creando aplicaciones como herramientas de respaldo o índices que necesitan monitorear volúmenes enteros.




Si está utilizando .net , use FileSystemWatcher . Más información aquí: FileSystemWatcher

Si usa C , use FindFirstChangeNotification , ReadDirectoryChangesW , ReadDirectoryChangesW . Más información aquí: http://msdn.microsoft.com/en-us/library/aa365261(VS.85).aspx

En OSX , la api relevante es la api de los fsevents .

Todos son sutilmente diferentes entre sí, y todos tienen una fiabilidad cuestionable en los casos extremos. En general, no puede depender de estas API para obtener una vista completa de todos los cambios el 100% del tiempo. La mayoría de las personas que usan la supervisión del sistema de archivos lo combinan con escaneos periódicos para compensar la información perdida o incompleta de la aplicación api.