Condividi tramite


Nozioni fondamentali sul file system e sulla funzionalità di I/O di file di .NET Framework (Visual Basic)

Le classi dello spazio dei nomi System.IO si usano per lavorare con unità, file e directory.

Lo spazio dei nomi System.IO contiene le classi File e Directory che offrono la funzionalità .NET Framework per la gestione di file e directory. Poiché i metodi di questi oggetti sono membri statici o condivisi, è possibile usarli direttamente senza prima creare un'istanza della classe. Associate a queste classi sono le classi FileInfo e DirectoryInfo che saranno note agli utenti della funzionalità My. Per usare queste classi è necessario specificare in modo completo i nomi oppure importare gli spazi dei nomi appropriati, includendo le istruzioni Imports all'inizio del codice in questione. Per altre informazioni, vedere Istruzione Imports (tipo e spazio dei nomi .NET).

Nota

Altri argomenti di questa sezione usano l'oggetto My.Computer.FileSystem anziché le classi System.IO per lavorare con unità, file e directory. L'oggetto My.Computer.FileSystem è destinato principalmente all'uso nei programmi Visual Basic. Le classi System.IO sono destinate all'uso da parte di qualsiasi linguaggio che supporta .NET Framework, incluso Visual Basic.

Definizione di un flusso

.NET Framework usa i flussi per supportare la lettura e scrittura su file. Un flusso è paragonabile a un set unidimensionale di dati contigui, con un inizio e una fine, e in cui il cursore indica la posizione corrente nel flusso.

Cursor shows current position in the filestream.

Operazioni di flusso

I dati contenuti nel flusso possono provenire dalla memoria, da un file o da un socket TCP/IP. Ai flussi è possibile applicare alcune operazioni fondamentali:

  • Lettura. È possibile leggere da un flusso, trasferendo i dati dal flusso in una struttura di dati, ad esempio una stringa o una matrice di byte.

  • Scrittura. È possibile scrivere in un flusso, trasferendo i dati da un'origine dati nel flusso.

  • Ricerca. È possibile eseguire una query e modificare la propria posizione nel flusso.

Per altre informazioni, vedere Composing Streams.

Tipi di flussi

In .NET Framework un flusso è rappresentato dalla classe Stream che costituisce la classe astratta per tutti gli altri flussi. Non è possibile creare direttamente un'istanza della classe Stream ma è necessario usare una delle classi che essa implementa.

Esistono molti tipi di flussi, ma per lavorare con l'input/output (I/O) su file, i tipi più importanti sono la classe FileStream, che fornisce un modo per leggere e scrivere sui file, e la classe IsolatedStorageFileStream, che consente di creare file e directory in uno spazio di memorizzazione isolato. Altri flussi che possono essere usati quando si lavora con l'I/O su file includono:

La tabella seguente elenca le attività comunemente eseguite con un flusso:

Per Vedere
Leggere e scrivere in un file di dati Procedura: Leggere e scrivere su un file di dati appena creato
Leggere testo da un file Procedura: Leggere testo da un file
Scrivere testo in un file Procedura: Scrivere un testo in un file
Leggere caratteri da una stringa Procedura: Leggere caratteri da una stringa
Scrivere caratteri in una stringa Procedura: Scrivere caratteri in una stringa
Crittografia dei dati Encrypting Data
Decrittografare i dati Decrittografia di dati

Accesso ai file e attributi

È possibile controllare come i file vengono creati, aperti e condivisi con le enumerazioni FileAccess, FileMode e FileShare, che contengono i flag utilizzati dai costruttori della classe FileStream. Ad esempio, quando si apre o si crea un nuovo FileStream, l'enumerazione FileMode consente di specificare se il file viene aperto per operazioni di accodamento, se viene creato un nuovo file quando il file specificato non esiste, se il file viene sovrascritto e così via.

L'enumerazione FileAttributes consente la raccolta di informazioni specifiche del file. L'enumerazione FileAttributes restituisce gli attributi del file archiviato, ad esempio se è compresso, crittografato, nascosto, in sola lettura, un archivio, una directory, un file di sistema o un file temporaneo.

La tabella seguente elenca le attività che coinvolgono l'accesso ai file e gli attributi di file:

Per Vedere
Aprire e accodare testo in un file di log Procedura: Aprire e accodare un file di log
Determinare gli attributi di un file FileAttributes

Autorizzazioni dei file

Il controllo dell'accesso ai file e alle directory può essere eseguito con la classe FileIOPermission. Questo può essere particolarmente importante per gli sviluppatori che lavorano con i Web Form che, per impostazione predefinita, vengono eseguiti nel contesto di un account utente locale speciale denominato ASPNET, che viene creato come parte delle installazioni di ASP.NET e .NET Framework. Quando una tale applicazione richiede l'accesso a una risorsa, l'account utente ASPNET dispone di autorizzazioni limitate, che potrebbero impedire all'utente di eseguire azioni quali la scrittura in un file da un'applicazione Web. Per ulteriori informazioni, vedere FileIOPermission.

Archiviazione di file isolati

Lo spazio di archiviazione isolato è un tentativo di risolvere i problemi creati durante l'uso dei file in cui l'utente o il codice non dispone delle autorizzazioni necessarie. Lo spazio di archiviazione isolato assegna a ciascun utente un raggruppamento di dati che può contenere uno o più archivi. Gli archivi possono essere isolati gli uni dagli altri per utente e per assembly. Solo l'utente e l'assembly che ha creato l'archivio può accedervi. Un archivio opera come un file system virtuale completo: all'interno di un archivio è possibile creare e modificare directory e file.

La tabella seguente elenca le attività comunemente associate all'archiviazione di file isolati.

Per Vedere
Creare un spazio di memorizzazione isolato Procedura: Recuperare archivi per lo spazio di memorizzazione isolato
Enumerare gli spazi di memorizzazione isolati Procedura: Enumerare gli archivi per lo spazio di memorizzazione isolato
Eliminare un spazio di memorizzazione isolato Procedura: Eliminare gli archivi nello spazio di memorizzazione isolato
Creare un file o una directory in un spazio di memorizzazione isolato Procedura: Creare file e directory nello spazio di memorizzazione isolato
Trovare un file in un spazio di memorizzazione isolato Procedura: Trovare file e directory esistenti nello spazio di memorizzazione isolato
Leggere o scrivere in un file in un spazio di memorizzazione isolato Procedura: Leggere e scrivere sui file nello spazio di memorizzazione isolato
Eliminare un file o una directory in un spazio di memorizzazione isolato Procedura: Eliminare file e directory nello spazio di memorizzazione isolato

Eventi di file

Il componente FileSystemWatcher consente di controllare le modifiche nei file e nelle directory del sistema o in qualsiasi computer a cui si ha accesso dalla rete. Ad esempio, se un file viene modificato, è consigliabile inviare all'utente un avviso che la modifica ha avuto luogo. Quando vengono apportate modifiche, vengono generati uno o più eventi, che vengono archiviati in un buffer e consegnati al componente FileSystemWatcher per l'elaborazione.

Vedi anche