Share via


Introducción a la supervisión de eventos del sistema de archivos

Actualización: noviembre 2007

El componente FileSystemWatcher se utiliza para supervisar un sistema de archivos y reaccionar cuando se producen cambios en los directorios o los archivos que contiene. Esto permite iniciar fácil y rápidamente procesos de empresa cuando se crean, modifican o eliminan ciertos archivos y directorios. Por ejemplo, suponga que usted y un grupo de colaboradores trabajan juntos en un documento que está almacenado en un directorio compartido del servidor. Si utiliza una instancia del componente FileSystemWatcher, puede programar la aplicación para que inspeccione los cambios que se producen en el contenido del directorio compartido. Cuando se detecta un cambio, el componente puede ejecutar procedimientos para notificarlo a cada uno de los miembros del grupo a través del correo electrónico.

Nota:

El componente FileSystemWatcher se ha diseñado para inspeccionar los cambios que se producen dentro de un directorio, no los cambios de los atributos propios del directorio raíz. Por ejemplo, si está inspeccionando un directorio denominado c:\MisProyectos, el componente supervisará los cambios que se produzcan dentro del directorio, pero no los cambios del propio directorio raíz.

Puede configurar el componente para que inspeccione un directorio completo y su contenido, o un archivo concreto o un conjunto de archivos dentro de un directorio dado. El componente FileSystemWatcher desencadena un evento siempre que un archivo o un subdirectorio del directorio raíz especificado se crea, se elimina, cambia de nombre o se modifica de cualquier otra forma. Entre los tipos de cambios que supervisa el componente se incluyen los cambios de los atributos del subdirectorio o del archivo, como el tamaño, la fecha en que se escribió por última vez, la fecha en que se utilizó por última vez y la configuración de seguridad.

Nota de seguridad:

Puede producirse un ataque de denegación de servicio si un programa creado con fines malintencionados obtiene acceso a un directorio supervisado por el componente FileSystemWatcher y genera tantos cambios que el componente no puede administrarlos. Siga las recomendaciones que se ofrecen en Consideraciones sobre los cambios en archivos de sistemas de gran volumen y utilice las listas de control de acceso según proceda para reducir el riesgo de un ataque de denegación de servicio.

Eventos de nivel de directorio

Cuando se producen cambios en el directorio raíz o en un archivo que está supervisando la aplicación, se provocan uno o más eventos, se almacenan en un búfer y, por último, se pasan al componente para procesarlos. El componente FileSystemWatcher proporciona acceso a los eventos siguientes:

  • Created: se produce siempre que se crea un directorio o un archivo.

  • Deleted: se produce siempre que se elimina un directorio o un archivo.

  • Renamed: se produce siempre que se modifica el nombre de un directorio o un archivo.

  • Changed: se produce siempre que se realizan cambios en el tamaño, los atributos del sistema, la fecha en que se escribió por última vez, la fecha en que se utilizó por última vez o los permisos de seguridad de un directorio o un archivo.

    Nota:

    Aunque algunos acontecimientos comunes, como copiar o mover un archivo, no corresponden directamente a un evento, sí hacen que se desencadenen eventos. Cuando se copia un archivo, el sistema desencadena un evento Created en el directorio en el que se copió el archivo, pero no produce eventos en el directorio original. Cuando se mueve un archivo, el servidor desencadena dos eventos: un evento Deleted en el directorio de origen y, a continuación, un evento Created en el directorio de destino.

Cada cambio que se realiza en un archivo de un directorio produce un evento independiente. Si un usuario realiza varios cambios en un único archivo, la aplicación produce un evento independiente por cada cambio. Por ejemplo, si está inspeccionando un directorio que contiene cinco archivos y cambian repentinamente los permisos de seguridad de todos los archivos, recibirá cinco eventos Changed. Si el usuario cambia el nombre de cada uno de estos archivos y les asigna permisos de seguridad nuevos, recibirá diez notificaciones de eventos: un evento Changed y un evento Renamed por cada uno de los cinco archivos.

Vea también

Tareas

Cómo: Crear instancias de componentes FileSystemWatcher

Cómo: Configurar instancias de componentes FileSystemWatcher

Cómo: Crear controladores para los eventos del sistema de archivos

Cómo: Esperar hasta que se produzcan los eventos especificados del sistema de archivos

Conceptos

Consideraciones sobre los cambios en archivos de sistemas de gran volumen