Tutorial: Reaccionar a eventos del sistema de archivos

Actualización: noviembre 2007

Los procedimientos de esta página muestran la creación de un componente FileSystemWatcher, cómo dirigirlo hacia un directorio del equipo local y, a continuación, el uso de la propiedad Filter para inspeccionar sólo los cambios que se produzcan en los archivos de texto. Creará un controlador de eventos que responde cuando se producen los eventos Created y Changed, y utilizará un formulario para mostrar las notificaciones que resulten de estos eventos.

En el procedimiento siguiente, creará un formulario Windows Forms y una instancia del componente FileSystemWatcher que colaborarán para reaccionar a eventos del nivel de directorio.

Nota:

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.

Crear la aplicación

Para crear el formulario y los componentes necesarios para la aplicación

  1. En el cuadro de diálogo Nuevo proyecto, cree una Aplicación para WindowsVisual Basic o Visual C#, y asígnele el nombre MyWatcher.

  2. En la ficha Windows Forms del Cuadro de herramientas, arrastre dos controles Label a la superficie del diseñador.

  3. Haga clic en la ficha Componentes del Cuadro de herramientas y, a continuación, arrastre el icono FileSystemWatcher a la superficie del diseñador del componente. De manera predeterminada, este componente se denomina FileSystemWatcher1.

Inspeccionar un directorio

En el siguiente procedimiento, establecerá varias propiedades del componente para determinar lo que va a inspeccionar. Estas configuraciones hacen que el componente inspeccione el directorio especificado en el equipo local, además de inspeccionar la creación de archivos que terminen con la extensión de nombre de archivo .txt.

Para establecer propiedades para el componente FileSystemWatcher

  1. Haga clic en el componente FileSystemWatcher creado en el procedimiento anterior y vea sus propiedades en la ventana Propiedades.

  2. Establezca el nombre del componente en myWatcher.

  3. Use la propiedad Path para establecer que el componente FileSystemWatcher inspeccione un directorio del equipo local. Por ejemplo, en un equipo en el que se ejecuta Microsoft Windows 2000, podría escribir lo siguiente en la propiedad Path para establecer que el componente inspeccione el directorio Mis documentos:

    C:\Documents and Settings\yourusername\My Documents\
    
    Sugerencia:

    Para este ejemplo, puede usar cualquier directorio del equipo local que desee.

  4. Establezca la propiedad Filter en *.txt para que el componente inspeccione sólo los archivos que tengan la extensión de nombre de archivo .txt.

Controlar los eventos que se producen

En el siguiente procedimiento, definirá dos controladores de eventos para el componente que definen el procesamiento que debe tener lugar siempre que se produzcan los eventos Changed y Created.

Para configurar el componente

  1. Haga doble clic en el componente FileSystemWatcher. Aparecerá el Editor de código y se abrirá un controlador de eventos predeterminado para el evento Changed.

    Nota:

    Para obtener más información, vea Crear controladores de eventos en formularios Windows Forms.

  2. Utilice el código siguiente para mostrar una cadena de texto simple que comprobará que se produjo el evento:

    Private Sub myWatcher_Changed(ByVal sender As System.Object, _
       ByVal e As System.IO.FileSystemEventArgs) Handles myWatcher.Changed
       Me.Label1.Text = "Changes made to: " & e.FullPath
    End Sub
    
    private void myWatcher_Changed(object sender, 
       System.IO.FileSystemEventArgs e)
    {
       label1.Text = "Changes made to: " + e.FullPath;
    }
    
  3. Cree el controlador de eventos para el evento Created que especifique lo que debe hacer la aplicación cuando el componente provoque este evento. Para obtener más información sobre cómo crear controladores de eventos, vea Cómo: Crear controladores de eventos con el diseñador. Agregue el código que aparece a continuación para mostrar la ruta de acceso completa del archivo recién creado. Una vez terminado, el código se parecería al ejemplo siguiente.

    Private Sub myWatcher_Created(ByVal sender As System.Object, _
       ByVal e As System.IO.FileSystemEventArgs) Handles myWatcher.Created
       Me.Label2.Text = "The file: " & e.FullPath & _
          " has been added to your directory"
    End Sub
    
    private void myWatcher_Created(object sender,
       System.IO.FileSystemEventArgs e)
    {
       label2.Text = "The file: " + e.FullPath + 
          " has been added to your directory.";
    }
    
  4. Guarde todos los archivos y, a continuación, genere y ejecute la aplicación.

Probar el componente

En el procedimiento siguiente, hará modificaciones de forma manual en el directorio que está inspeccionando el componente, para forzar al controlador de eventos a que provoque los eventos Changed y Created.

Para probar el componente FileSystemWatcher

  1. Ejecute la aplicación que creó en el procedimiento anterior.

  2. Utilice el Explorador de Windows para buscar el directorio establecido que el componente FileSystemWatcher debe inspeccionar.

  3. Inicie el Bloc de notas y después cree un nuevo archivo de texto. Guarde este archivo en el directorio que encontró en el paso 2 y cierre el archivo.

    Nota:

    Esto debe provocar los eventos Created y Changed, y ejecutar el controlador que ha definido.

  4. Vuelva al formulario. Deberá ver el mensaje de creación en la etiqueta.

  5. Abra el archivo de texto que creó, escriba algunas líneas y vuelva a guardarlo.

    Nota:

    Esto debe provocar el evento Changed y ejecutar el controlador que ha definido.

  6. Vuelva al formulario. Deberá ver el mensaje de cambio en la etiqueta.

Vea también

Tareas

Cómo: Crear instancias de componentes FileSystemWatcher

Conceptos

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

Otros recursos

Label (Control, formularios Windows Forms)