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.
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
- Composizione dei flussi
- I/O di file e di flussi
- I/O di file asincrono
- Classes Used in .NET Framework File I/O and the File System (Visual Basic) (Classi usate nel file system e nella funzionalità di I/O di file di .NET Framework (Visual Basic))