Condividi tramite


Nozioni di base sull'I/O dei file di .NET Framework e sul file system (Visual Basic)

Le classi nel namespace System.IO vengono usate per lavorare con unità, file e directory.

Lo spazio dei nomi System.IO contiene le classi File e Directory, che forniscono la funzionalità del .NET Framework per la manipolazione di file e directory. Poiché i metodi di questi oggetti sono membri statici o condivisi, è possibile usarli direttamente senza creare prima un'istanza della classe . Sono associate a queste classi le classi FileInfo e DirectoryInfo, che saranno familiari agli utenti della funzionalità My. Per usare queste classi, è necessario specificare completamente i nomi o importare i namespace appropriati includendo le dichiarazioni Imports all'inizio del codice interessato. Per ulteriori informazioni, vedere Istruzione Imports (spazio dei nomi .NET e tipo).

Annotazioni

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. System.IO Le classi sono destinate all'uso da parte di qualsiasi linguaggio che supporta .NET Framework, incluso Visual Basic.

Definizione di un flusso

.NET Framework usa flussi per supportare la lettura e la scrittura nei file. È possibile considerare un flusso come un set unidimensionale di dati contigui, che ha un inizio e una fine e dove il cursore indica la posizione corrente nel flusso.

Il cursore mostra la posizione corrente nel filestream.

Operazioni di flusso

I dati contenuti nel flusso possono provenire dalla memoria, da un file o da un socket TCP/IP. I flussi dispongono di operazioni fondamentali che possono essere applicate:

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

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

  • Alla ricerca. È possibile eseguire query e modificare la posizione nel flusso.

Per altre informazioni, vedere Composizione di flussi.

Tipi di flussi

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

Esistono molti tipi di flussi, ma ai fini dell'uso dell'input/output dei file (I/O), i tipi più importanti sono la FileStream classe , che consente di leggere e scrivere nei file e la IsolatedStorageFileStream classe , che consente di creare file e directory in uno spazio di archiviazione isolato. Altri flussi che possono essere usati quando si usano le operazioni di I/O dei file includono:

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

Per Visualizza
Leggere e scrivere in un file di dati Procedura: Leggere e scrivere in un file di dati appena creato
Leggere testo da un file Procedura: Leggere testo da un file
Scrivere testo in un file Procedura: Scrivere 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 crittografia dei dati
Decrittografare i dati Decrittografia Dei Dati

Accesso ai file e attributi

È possibile controllare il modo in cui i file vengono creati, aperti e condivisi con le FileAccessenumerazioni , FileModee FileShare , che contengono i flag usati dai costruttori della FileStream classe . Ad esempio, quando si apre o si crea un nuovo FileStream, l'enumerazione FileMode consente di specificare se il file viene aperto per l'accodamento, se viene creato un nuovo file se 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 archiviati del file, ad esempio se è compresso, crittografato, nascosto, di sola lettura, un archivio, una directory, un file di sistema o un file temporaneo.

Nella tabella seguente sono elencate le attività che coinvolgono l'accesso ai file e gli attributi di file:

Per Visualizza
Aprire e aggiungere testo a un file di log Procedura: Aprire e aggiungere a un file di log
Determinare gli attributi di un file FileAttributes

Autorizzazioni file

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

Archiviazione file isolata

L'archiviazione isolata è un tentativo di risolvere i problemi creati quando si lavora con i file in cui l'utente o il codice potrebbe non avere le autorizzazioni necessarie. L'archiviazione isolata assegna a ogni utente un raggruppamento dati, che può contenere uno o più archivi. I negozi possono essere isolati tra loro dall'utente e dall'assembly. Solo l'utente e l'assembly che ha creato un archivio possono accedervi. Un archivio funge da file system virtuale completo, all'interno di un archivio è possibile creare e modificare directory e file.

Nella tabella seguente sono elencate le attività comunemente associate all'archiviazione file isolata.

Per Visualizza
Creare un negozio isolato Procedura: Ottenere archivi per l'archiviazione isolata
Enumerare negozi isolati Procedura: Enumerare gli archivi per lo spazio di memorizzazione isolato
Eliminare un negozio isolato Procedura: Eliminare gli archivi nello spazio di memorizzazione isolato
Creare un file o una directory nell'archiviazione isolata Procedura: Creare file e directory nello spazio di memorizzazione isolato
Trovare un file nello spazio di memorizzazione isolato Procedura: Trovare file e directory esistenti nello spazio di memorizzazione isolato
Leggere o scrivere in un file in uno spazio di memorizzazione isolato Procedura: Leggere e scrivere sui file nello spazio di memorizzazione isolato
Eliminare un file o una directory nello spazio di memorizzazione isolato Procedura: Eliminare file e directory nello spazio di memorizzazione isolato

Eventi di file

Il FileSystemWatcher componente consente di controllare le modifiche apportate a file e directory nel sistema o in qualsiasi computer a cui si dispone dell'accesso alla rete. Ad esempio, se un file viene modificato, potrebbe essere necessario inviare un avviso che indica che la modifica è stata eseguita. Quando si verificano modifiche, vengono generati uno o più eventi, archiviati in un buffer e inviati al componente per l'elaborazione FileSystemWatcher .

Vedere anche