2011-11-20 21 views
8

¿Hay alguna biblioteca para escuchar un directorio? Quiero decir que tengo un directorio y quiero que se me informe de cualquier cambio en él.Escucha de directorio en C#

Por ejemplo: cuando se eliminan o crean algunos archivos en el directorio, quiero que me informen. No quiero usar un temporizador y verifico el directorio manualmente para detectar cualquier cambio.

+0

He editado su pregunta lo mejor que pude, pero no pude entender "y el directorio de verificación pasó algo diferente, etc." por lo que no pude volver a expresarlo en inglés correcto. –

+0

@JonSkeet aplausos para editar. "el evento del temporizador comprueba el directorio si sucedió algo como crear o eliminar un archivo en él";) –

+1

Vea si esta edición final refleja lo que usted quiso decir. –

Respuesta

21

Parece que está buscando FileSystemWatcher. Vea la documentación para un ejemplo completo.

+0

El libro "Referencia del programador de Visual Basic 2010" dice lo siguiente (página 863): __El FileSystemWatcher parece tener algunos problemas. A veces se siente abrumado y no ve los cambios que debería ver, y parece confundirse en algunas circunstancias y dejar de generar eventos o generar eventos duplicados. Se espera que el control mejore con el tiempo, pero por ahora, úselo con cuidado .__ – JohnyL

+0

@JohnyL: Ciertamente se puede usar mal, y * does * se debe usar con cuidado, pero eso me parece una advertencia demasiado amplia. –

+0

Quería usar ShellObjectWatcher desde el paquete de código de la API de Windows, pero, por desgracia, no elimina el objeto, el proceso simplemente se bloquea en Process Explorer. Por lo tanto, decidí aprender SHChangeNotifyRegister (en qué se basa Code Pack). Utilicé [este] (https://dotnettoys.wordpress.com/2012/05/28/daily-problems-how-to-write-a-filewatcher-in-three-possible-ways-today/) artículo para obtener información . – JohnyL