Nozioni fondamentali sulla funzionalità di I/O di file e il file system di .Net Framework

Aggiornamento: novembre 2007

Lo spazio nome System.IO contiene le classi File e Directory che forniscono la funzionalità .NET Framework per la gestione di file e directory. Poiché i metodi di questi oggetti sono membri statici o condivisi, è possibile utilizzarli direttamente, senza creare prima alcuna istanza della classe. A queste classi sono associate le classi FileInfo e DirectoryInfo, molto note agli utenti della funzione My. Per utilizzare tali classi, è necessario specificare i nomi completi oppure importare gli spazi nome appropriati includendo l'istruzione o le istruzioni Imports all'inizio del codice in questione. Per ulteriori informazioni, vedere Istruzione Imports (tipo e spazio dei nomi .NET).

Definizione di un flusso

In .NET Framework i flussi vengono utilizzati per supportare la lettura e la scrittura nei file. Un flusso può essere considerato come una serie unidimensionale di dati contigui, con un inizio e una fine, e dove il cursore può indicare la posizione corrente all'interno del flusso.

Il cursore mostra la posizione corrente all'interno del flusso dei file

Operazioni con il flusso

I dati contenuti nel flusso possono venire dalla memoria, da un file o da un socket TCP/IP. È possibile applicare ai flussi una serie di operazioni fondamentali:

  • Lettura. È possibile leggere da un flusso, trasferire i dati dal flusso a una struttura di dati, quale una stringa o una matrice di byte.

  • Scrittura. È possibile scrivere in un flusso, trasferire i dati da un'origine dati a un flusso.

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

Per ulteriori informazioni, vedere Composizione dei flussi.

Tipi di flusso

In .NET Framework, un flusso è rappresentato dalla classe Stream che costituisce la classe astratta per tutti i flussi. Non è possibile creare direttamente un'istanza della classe Stream ma è possibile utilizzare una delle classi che questa implementa.

Esistono molti tipi di flusso; tuttavia, per l'utilizzo con le attività di I/O di un file, i tipi più importanti sono la classe FileStream, che consente di leggere e scrivere nel file, e la classe IsolatedStorageFileStream, che consente di creare file e directory in archiviazione isolata. Altri flussi che possono essere utilizzati per le attività di I/O dei file sono:

Nella seguente tabella vengono elencate 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 da un file XML

Attività comuni di XmlReader

Creare un writer di flusso per poter scrivere del testo in un file

Creazione di un writer

Leggere testo da un file

Procedura: leggere testo da un file

Scrivere testo in un file

Procedura: scrivere testo su un file

Leggere i caratteri da una stringa

Procedura: leggere caratteri da una stringa

Scrivere i caratteri in una stringa

Procedura: scrivere caratteri in una stringa

Crittografare i dati

Crittografia dei dati

Decrittografare i dati

Decrittografia di dati

Accesso al file e attributi

È possibile controllare il modo in cui i file vengono creati, aperti e condivisi con le enumerazioni FileAccess, FileMode e FileShare che contengono i flag utilizzati dal produttore della classe FileStream. Ad esempio, quando si apre o si crea un nuovo FileStream, l'enumerazione FileMode consente di specificare se il file è aperto per l'aggiunta di dati, se viene creato un nuovo file quando il file specificato non esiste, se il file è stato sovrascritto e così via.

L'enumerazione FileAttributes consente di raccogliere informazioni specifiche sul file. L'enumerazione FileAttributes restituisce gli attributi memorizzati del file, che ad esempio consentono di stabilire se è un file compresso, crittografato, nascosto, in sola lettura, di un archivio, di una directory, di un file system o temporaneo.

Nella seguente tabella vengono elencate le attività comprese nell'accesso al file e gli attributi del file:

Per

Vedere

Aprire e aggiungere testo a un file di log

Procedura: aprire e accodare un file di log

Determinare gli attributi di un file

FileAttributes

Autorizzazioni per i file

Il controllo dell'accesso ai file e alle directory può essere realizzato con la classe FileIOPermission. Questa possibilità è particolarmente importante per gli sviluppatori che utilizzano Web Form, eseguiti per impostazione predefinita nel contesto di un utente locale speciale denominato ASPNET, creato come parte delle installazioni ASP.NET e .NET Framework. Quando viene eseguita una richiesta di accesso a una risorsa da un'applicazione simile, l'account utente ASPNET dispone di autorizzazioni limitate ed è possibile che l'utente non possa eseguire azioni come la scrittura in un file da un'applicazione Web. Per ulteriori informazioni, vedere Autorizzazioni di protezione, Richiesta di autorizzazioni e FileIOPermission Class.

Nella seguente tabella vengono elencate le attività che coinvolgono le autorizzazioni per i file.

Per

Vedere

Richiedere le autorizzazioni minime

Procedura: richiedere l'autorizzazione di accesso a codice non gestito

Richiedere le autorizzazioni opzionali

Procedura: richiedere le autorizzazioni facoltative tramite il flag RequestOptional

Rifiutare le autorizzazioni

Procedura: rifiutare le autorizzazioni mediante il flag RequestRefuse

Richiedere le autorizzazioni incorporate

Procedura: richiedere l'autorizzazione per un set di autorizzazioni denominato

Richiedere le autorizzazioni codificate in XML

Richiesta di autorizzazioni codificate in XML

Archiviazione isolata di file

L'archiviazione isolata è un tentativo di risolvere i problemi creati durante l'utilizzo dei file dove l'utente o il codice non dispongono delle autorizzazioni necessarie. L'archiviazione isolata consente di assegnare a ciascun utente un contesto dati che può contenere uno o più archivi. Gli archivi possono essere isolati gli uni rispetto agli altri dall'utente o dall'assembly. Sarà consentito accedere agli archivi solo all'utente o all'assembly da cui sono stati creati. Un archivio è come un completo file system virtuale in cui è possibile creare e gestire directory e file.

Nella seguente tabella vengono elencate le attività comunemente associate ad un archivio di file isolato.

Per

Vedere

Creare un archivio isolato

Procedura: recuperare archivi per l'archiviazione isolata

Enumerare gli archivi isolati

Procedura: enumerare gli archivi per l'archiviazione isolata

Eliminare un archivio isolato

Procedura: eliminare gli archivi nell'archiviazione isolata

Creare un file o una directory in un archivio isolato

Procedura: creare file e directory nello spazio di memorizzazione isolato

Individuare un file in un archivio isolato

Procedura: trovare file e directory esistenti nello spazio di memorizzazione isolato

Leggere o scrivere in un file in un archivio isolato

Procedura: leggere e scrivere sui file nell'archiviazione isolata

Eliminare un file o una directory da un archivio isolato

Procedura: eliminare file e directory nello spazio di memorizzazione isolato

Eventi di file

Il componente FileSystemWatcher consente di cercare le modifiche nei file e nelle directory sul sistema oppure su un computer per il quale si dispone dell'accesso alla rete. Ad esempio, se un file viene modificato, è possibile inviare a un utente un avviso della modifica apportata. Quando vengono apportate modifiche, vengono generati uno o più eventi, memorizzati in un buffer e inviati al componente FileSystemWatcher per l'elaborazione. Per ulteriori informazioni, vedere Reazione a eventi del file system.

Per

Vedere

Creare un gestore per gli eventi del file system

Procedura: creare gestori per gli eventi del file system

Configurare un'istanza del componente FileSystemWatcher

Procedura: configurare istanze del componente FileSystemWatcher

Vedere anche

Concetti

Composizione dei flussi

I/O di file di base

I/O di file asincrono

Classi utilizzate nella funzionalità di I/O di file e il file system di .Net Framework

Altre risorse

Archiviazione isolata