Es FindFirstChangeNotification el mejor API para el uso de archivos de sistema de notificación de cambio en windows?

StackOverflow https://stackoverflow.com/questions/16615

Pregunta

Soy nuevo en la programación de windows y estoy tratando de conseguir informado de todos los cambios del sistema de archivos (similar a la información que FileMon de SysInternals muestra, pero a través de una API).Es un FindFirstChangeNotification para cada (no de la red, no substed) de la unidad de mi mejor apuesta o hay otros más adecuados C/C++ Api?

¿Fue útil?

Solución

FindFirstChangeNotification está bien, pero para un poco más de potencia definitiva debe ser el uso de ReadDirectoryChangesW. (De hecho, incluso se recomienda en la documentación!)

No requiere de un puntero a función, se requiere manualmente decodificar un raw de búfer, utiliza nombres de archivo Unicode, pero generalmente es mejor y más flexible.

Por otro lado, si usted quiere hacer lo FileMon hace, usted probablemente debería hacer lo FileMon hace y uso IFS para crear e instalar un filtro de sistema de archivos.

Otros consejos

Hay otras maneras de hacerlo, pero la mayoría de ellos implican esfuerzo de su parte (o aprovechar el rendimiento de tu aplicación, o hay que bloquear un hilo para el uso, etc).FindFirstChangeNotification es un poco complicado si no estás acostumbrado a tratar con los punteros a función, etc, pero tiene la virtud de conseguir que el sistema operativo para hacer la mayor parte del trabajo para usted.

En realidad FileSystemWatcher funciona perfectamente con unidades de red compartidas.Yo estoy usando ahora mismo en una aplicación que, entre otras cosas, controla el sistema de archivos en busca de cambios.(www.tabbles.net).

Puede utilizar la clase FileSystemWatcher.Muy eficiente, pero no puede trabajar con la Red de unidades compartidas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top