Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.
.gif)
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 |
|
Creare un writer di flusso per poter scrivere del testo in un file |
|
Leggere testo da un file |
|
Scrivere testo in un file |
|
Leggere i caratteri da una stringa |
|
Scrivere i caratteri in una stringa |
|
Crittografare i dati |
|
Decrittografare i 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 |
|
Determinare gli attributi di un file |
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 |
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 |
|
Enumerare gli archivi isolati |
Procedura: enumerare gli archivi per l'archiviazione isolata |
Eliminare un archivio isolato |
|
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 |
|
Configurare un'istanza del componente FileSystemWatcher |
Procedura: configurare istanze del componente FileSystemWatcher |
Vedere anche
Concetti
Classi utilizzate nella funzionalità di I/O di file e il file system di .Net Framework