Condividi tramite


Procedura dettagliata: reazione a eventi del file system

Aggiornamento: novembre 2007

Nelle procedure illustrate in questa pagina viene descritto come creare un componente FileSystemWatcher, come impostarlo su una directory del computer locale e come utilizzare la proprietà Filter per controllare solo le modifiche ai file di testo. Verrà creato un gestore eventi che risponde quando vengono generati gli eventi Created e Changed e verrà quindi utilizzato un form per visualizzare le notifiche generate da questi eventi.

Nella procedura riportata di seguito verranno creati un Windows Form e un'istanza del componente FileSystemWatcher che verranno quindi utilizzati in combinazione per rispondere agli eventi a livello di directory.

Nota:

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Creazione dell'applicazione

Per creare il form e i componenti necessari per l'applicazione

  1. Dalla finestra di dialogo Nuovo progetto creare un'applicazione Windows in Visual Basic o Visual C# e assegnarle il nome MyWatcher.

  2. Dalla scheda Windows Form nella Casella degli strumenti trascinare due controlli Label nell'area di progettazione.

  3. Fare clic sulla scheda Componenti nella Casella degli strumenti, quindi trascinare la classe FileSystemWatcher nell'area di progettazione del componente. Per impostazione predefinita, a questo componente viene assegnato il nome FileSystemWatcher1.

Controllo di una directory

Nella procedura riportata di seguito vengono impostate diverse proprietà per il componente in modo da determinare il tipo di controllo da eseguire. Queste impostazioni consentono al componente di controllare la directory specificata nel computer locale e di verificare se vengono creati file con estensione TXT.

Per impostare le proprietà per il componente FileSystemWatcher

  1. Fare clic sul componente FileSystemWatcher creato nella procedura precedente e visualizzarne le proprietà nella finestra Proprietà.

  2. Impostare il nome del componente su myWatcher.

  3. Utilizzare la proprietà Path per impostare il componente FileSystemWatcher in modo che controlli una directory sul computer locale. Su un computer con sistema operativo Microsoft® Windows® 2000 è ad esempio possibile immettere nella proprietà Path il percorso seguente affinché il componente esegua il controllo della directory Documenti:

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

    Ai fini di questo esempio è possibile utilizzare qualsiasi directory del computer locale.

  4. Impostare la proprietà Filter su *.txt in modo che il componente controlli solo i file con estensione TXT.

Gestione di eventi generati

Nella procedura riportata di seguito vengono definiti due gestori eventi per il componente, i quali determinano l'elaborazione da eseguire ogni volta che vengono generati gli eventi Changed e Created.

Per configurare il componente

  1. Fare doppio clic sul componente FileSystemWatcher. Verrà visualizzato l'editor del codice e un gestore eventi predefinito per l'evento Changed.

    Nota:

    Per ulteriori informazioni, vedere Creazione di gestori eventi in Windows Form.

  2. Utilizzare il codice riportato di seguito per visualizzare una stringa di testo che verifichi l'effettiva generazione dell'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. Creare il gestore eventi per l'evento Created che specifica quali operazioni verranno eseguite dall'applicazione a ogni generazione di tale evento da parte del componente. Per ulteriori informazioni sulla creazione di gestori eventi, vedere Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione. Aggiungere il codice come illustrato di seguito per visualizzare il percorso completo del file appena creato. Al termine, il codice ottenuto sarà simile a quello dell'esempio seguente.

    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. Salvare tutti i file, quindi generare ed eseguire l'applicazione.

Test del componente

Nella procedura riportata di seguito verranno apportate manualmente modifiche nella directory controllata dal componente, in modo da forzare la generazione degli eventi Changed e Created da parte del gestore eventi.

Per verificare il componente FileSystemWatcher

  1. Eseguire l'applicazione creata nella procedura precedente.

  2. Utilizzare Esplora risorse per individuare la directory che si è deciso di far controllare dal componente FileSystemWatcher.

  3. Avviare il Blocco note e creare un nuovo file di testo. Salvare il file nella directory individuata al passaggio 2, quindi chiudere il file.

    Nota:

    In questo modo verranno generati gli eventi Created e Changed e verrà eseguito il gestore eventi definito.

  4. Tornare al form. Il messaggio creato verrà visualizzato nell'etichetta.

  5. Aprire il file di testo creato, digitare alcune righe di testo e salvarlo nuovamente.

    Nota:

    In questo modo verrà generato l'evento Changed e verrà eseguito il gestore eventi definito.

  6. Tornare al form. Il messaggio modificato verrà visualizzato nell'etichetta.

Vedere anche

Attività

Procedura: creare istanze del componente FileSystemWatcher

Concetti

Introduzione al monitoraggio degli eventi del file system

Altre risorse

Controllo Label (Windows Form)