Condividi tramite


Introduzione al monitoraggio degli eventi del file system

Aggiornamento: novembre 2007

Utilizzare il componente FileSystemWatcher per monitorare un file system e rispondere alle modifiche apportate alle directory o ai file in esso contenuti, rendendo possibile all'utente avviare in modo rapido e agevole i processi aziendali durante la creazione, la modifica o l'eliminazione di determinati file o directory. Se, ad esempo, un determinato documento archiviato in una directory condivisa sul server deve essere utilizzato da più utenti, l'utilizzo di un'istanza del componente FileSystemWatcher consente di programmare l'applicazione in uso per il controllo delle modifiche apportate al contenuto della directory condivisa. Quando viene rilevata qualche modifica, il componente può eseguire delle routine che inviano notifiche a ciascun membro del gruppo via posta elettronica.

Nota:

Il componente FileSystemWatcher è progettato per il controllo delle modifiche all'interno di una directory, non delle modifiche agli attributi della directory principale. Se, ad esempio, si controlla una directory denominata c:\MyProjects, mediante il componente sarà possibile monitorare le modifiche apportate all'interno della directory, non le modifiche apportate alla directory principale.

È possibile configurare il componente per l'analisi di un'intera directory e del relativo contenuto o di uno specifico file o gruppo di file all'interno di una determinata directory. Il componente FileSystemWatcher genera un evento ogni volta che si crea, si elimina, si rinomina o si modifica un file o una sottodirectory all'interno della directory principale specificata. I tipi di modifiche monitorate dal componente includono le modifiche agli attributi, alle dimensioni, all'ora dell'ultima scrittura, all'ora dell'ultimo accesso e alle impostazioni di protezione del file o della sottodirectory.

Nota sulla sicurezza:

È possibile che si verifichi un attacco Denial of Service se un programma dannoso ottiene l'accesso a una directory monitorata dal componente FileSystemWatcher e apporta un numero di modifiche tale da non poter essere gestite dal componente. Per ridurre il rischio di attacchi Denial of Service, attenersi ai suggerimenti riportati in Considerazioni per la modifica di file in sistemi di grandi dimensioni e utilizzare gli elenchi di controllo di accesso in modo appropriato.

Eventi a livello di directory

Quando vengono apportate modifiche all'interno di una directory principale o di un file monitorato dall'applicazione in uso, uno o più eventi vengono generati, memorizzati in un buffer e infine passati al componente per l'elaborazione. Il componente FileSystemWatcher consente di accedere agli eventi riportati di seguito.

  • 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 di un file o di una directory.

    Nota:

    Alcune operazioni comuni, quali la copia o lo spostamento di un file, non corrispondono direttamente a un evento, ma causano la generazione di eventi. Quando si copia un file, nel sistema viene generato un evento Created all’interno della directory in cui il file è stato copiato, ma non viene generato alcun evento nella directory originale. Quando si sposta un file, nel server vengono generati due eventi: un evento Deleted nella directory di origine e un evento Created nella directory di destinazione.

Ciascuna modifica apportata a un file in una directory comporta la generazione di un evento distinto. Se si apportano più modifiche a un singolo file, nell'applicazione verrà generato un evento distinto per ciascuna modifica. Se ad esempio è in corso il controllo di una directory contenente cinque file e le autorizzazioni di protezione per tutti i file vengono improvvisamente modificate, vengono generati cinque eventi Changed. Se si assegnano nuovi nomi e nuove autorizzazioni di protezione a ciascuno dei file, si ricevono 10 notifiche di eventi, ovvero un evento Changed e un evento Renamed per ciascuno dei cinque file.

Vedere anche

Attività

Procedura: creare istanze del componente FileSystemWatcher

Procedura: configurare istanze del componente FileSystemWatcher

Procedura: creare gestori per gli eventi del file system

Procedura: attendere eventi specifici del file system

Concetti

Considerazioni per la modifica di file in sistemi di grandi dimensioni