Con el sistema operativo Linux, existe el subsistema ionotify que notifica a una aplicación de cambios en el sistema de archivos.
Sin embargo, soy principalmente un usuario de Windows, por lo que me preguntaba si existe una forma similar de monitorear los cambios en el sistema de archivos.
Respuestas:
Consulte la API FindFirstChangeNotification o la contraparte de .NET FileSystemWatcher
fuente
Si está usando .net , use
FileSystemWatcher
. Más información aquí: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspxSi estás usando C , uso
FindFirstChangeNotification
,FindNextChangeNotification
,ReadDirectoryChangesW
. Más información aquí: http://msdn.microsoft.com/en-us/library/aa365261(VS.85).aspxEn OSX , la api relevante es la
fsevents
api.Todos son sutilmente diferentes entre sí, y todos tienen una confiabilidad cuestionable en casos extremos. En general, no puede depender de estas apis para obtener una vista completa de todos los cambios el 100% del tiempo. La mayoría de las personas que utilizan el monitoreo del sistema de archivos lo combinan con escaneos periódicos para compensar la información perdida o incompleta de la API push.
fuente
eche un vistazo a esto: inotify-win, un puerto de la herramienta inotifywait para Windows
y también esto: inotify-tools
fuente
JNotify o FileMon de Microsoft.
fuente
Un poco tarde pero ...
Windows tiene una función similar a los eventos de OSX mediante la cual puede monitorear eventos sin ejecutar una aplicación. Windows USN Journal realiza un seguimiento de todos los cambios en los archivos. Jeffrey Richter (autor de Advanced Windows) escribió un excelente artículo con ejemplos de trabajo para MSDN Journal. Actualización : artículo ahora de archive.org ya que MSJ ya no está en línea en MS.
Documentación de MSDN para diarios de cambios de USN.
Los diarios de cambios de USN probablemente sean mejores si está creando aplicaciones como herramientas de respaldo o índices que necesitan monitorear volúmenes completos.
fuente
FileSystemWatcher
|FindFirstChangeNotification
PhillipBrandonHolmes estaba hablando ?FileSystemWatcher () no es confiable principalmente debido al hecho de que su manejo de errores para el búfer del observador es más o menos incompleto. Debido a la falta de ruta e información detallada sobre el manejo de errores, Microsoft no le brinda forma de recuperar o sondear manualmente el directorio de trabajo.
El JNotify para Windows tampoco es confiable porque este error ^ deriva de win32. JNotify usa win32. Entonces, no es diferente a FileSystemWatcher ().
fuente
Hice un poco de búsqueda, creo recordar haber visto algo similar para Windows. Existe FileSystemWatcher para .NET. Es principalmente para NT o XP y versiones posteriores.
fuente
prueba la biblioteca de notificaciones de archivos de Java
fuente