Procedura: creare gestori per gli eventi del file system
Aggiornamento: novembre 2007
Il componente FileSystemWatcher genera quattro eventi in base ai tipi di modifica che si verificano nella directory controllata. Gli eventi sono:
Created: generato in seguito alla creazione di un file o di una directory.
Deleted: generato in seguito all'eliminazione di un file o di una directory.
Renamed: generato in seguito alla modifica del nome di un file o di una directory.
Changed: generato in seguito a modifiche apportate alle dimensioni, agli attributi di sistema, all'ora dell'ultima scrittura, all'ora dell'ultimo accesso o alle autorizzazioni di protezione NTFS di un file o di una directory.
Nota: È possibile utilizzare la proprietà NotifyFilter per limitare il numero di eventi generati dall'evento Changed. Per ulteriori informazioni, vedere Procedura: configurare istanze del componente FileSystemWatcher.
Per ciascuno di questi eventi, è possibile definire i gestori con cui eseguire automaticamente le chiamate di metodo nel codice in caso di modifiche. Un gestore eventi è un metodo associato a un evento relativo a un componente, form o controllo. Per ogni gestore eventi sono disponibili due parametri che consentono di gestire correttamente l'evento: il parametro sender, che fornisce un riferimento all'oggetto responsabile dell'evento, e il parametro e, che fornisce un oggetto rappresentante l'evento e le relative informazioni.
Sebbene siano disponibili diversi modi per creare un gestore eventi per un'istanza del componente FileSystemWatcher, il modo più semplice consiste nel configurare Visual Studio per la creazione automatica della maggior parte del codice. Quando si fa doppio clic sull'istanza del componente FileSystemWatcher nella finestra di progettazione, in Visual Studio viene visualizzato l'Editor di codice e viene creato un gestore eventi per l'evento Changed e per la routine vuota chiamata. È quindi possibile scrivere il codice per l'elaborazione che si desidera venga eseguita nella routine. È inoltre possibile creare gestori personalizzati per la gestione di altri eventi.
Per ulteriori informazioni sui gestori eventi, vedere Gestione e generazione di eventi.
Per creare un gestore predefinito per l'evento Changed
Creare un'istanza del componente FileSystemWatcher. Per ulteriori informazioni, vedere Procedura: creare istanze del componente FileSystemWatcher.
Impostare le proprietà necessarie per il componente. Per ulteriori informazioni, vedere Procedura: configurare istanze del componente FileSystemWatcher.
Nella finestra di progettazione fare doppio clic sul componente FileSystemWatcher per il quale si desidera creare un gestore.
Nota: Verrà visualizzato l'Editor di codice e verranno aggiunti al codice due elementi: il gestore, che consente di creare e registrare un delegato e di chiamare la routine, e una routine vuota per l'evento Changed.
Nella routine vuota per l'evento Changed definire il codice da eseguire quando viene chiamato l'evento.
Per creare un gestore per un evento FileSystemWatcher
Creare un'istanza del componente FileSystemWatcher. Per ulteriori informazioni, vedere Procedura: creare istanze del componente FileSystemWatcher.
Impostare le proprietà necessarie per il componente. Per ulteriori informazioni, vedere Procedura: configurare istanze del componente FileSystemWatcher.
Creare la routine appropriata che verrà chiamata e definire il codice con cui si desidera elaborare le voci. Nell'esempio riportato di seguito viene illustrato un gestore per l'evento Changed.
Private Sub myWatcher_Changed(ByVal sender As System.Object, _ ByVal e As System.IO.FileSystemEventArgs) Dim pathChanged As String pathChanged = e.FullPath End Sub
private void myWatcher_Changed(object sender, System.IO.FileSystemEventArgs e) { string pathChanged = e.FullPath; }
Assegnare un'istanza del delegato FileSystemEventHandler all'evento del componente. Nell'esempio viene aggiunto il gestore eventi Changed definito nel passaggio 3.
AddHandler myWatcher.Changed, _ New System.IO.FileSystemEventHandler(AddressOf Me.myWatcher_Changed)
myWatcher.Changed += new System.IO.FileSystemEventHandler(this.myWatcher_Changed);
Vedere anche
Attività
Procedura: creare istanze del componente FileSystemWatcher
Procedura: configurare istanze del componente FileSystemWatcher