Come eseguire le operazioni di I/O di base dei file in Visual C# 2005 Express Edition

Traduzione articoli Traduzione articoli
Identificativo articolo: 910356 - Visualizza i prodotti a cui si riferisce l?articolo.
Per la una versione di Microsoft Visual Basic .NET di questo articolo, vedere 304427.
Per la una versione di Microsoft Visual c ++ .NET di questo articolo, vedere 307398.
Per la una versione di Microsoft Visual C# .NET di questo articolo, vedere 304430.
In questo articolo si riferisce al spazio dei nomi Microsoft .NET Framework Class Library di System.IO .
Espandi tutto | Chiudi tutto

In questa pagina

INTRODUZIONE

In questo articolo viene descritto come eseguire le operazioni di I/O di base dei file in Microsoft Visual C# 2005 Express Edition. Se non si conosce Microsoft .NET Framework, si noterÓ che il modello di oggetto per le operazioni di file in Microsoft .NET Ŕ simile al modello di oggetto FileSystemObject Ŕ diffuso con molti sviluppatori di Microsoft Visual Studio 6.0. Per semplificare la transizione, la funzionalitÓ descritta in questo articolo si basa sul seguente articolo della Microsoft Knowledge Base:
186118L'utilizzo di FileSystemObject con Visual Basic
╚ possibile utilizzare l'oggetto FileSystemObject in. NET. PoichÚ l'oggetto FileSystemObject Ŕ un componente COM (Component Object Model) in .NET Ŕ necessario che per accedere all'oggetto FileSystemObject si deve utilizzare il livello di interoperabilitÓ. Se si desidera utilizzare un wrapper, .NET genera un wrapper per il componente per l'utente. Tuttavia, le seguenti classi .NET Framework offrono funzionalitÓ non disponibile quando si utilizza l'oggetto FileSystemObject , senza il sovraccarico del livello di interoperabilitÓ:
  • La classe file
  • La classe FileInfo
  • La classe Directory
  • La classe DirectoryInfo
  • Altre classi correlate

Requisiti

Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack Ŕ necessario:
  • Microsoft Visual C# 2005 Express Edition o Microsoft Visual Studio 2005

Dimostrazione delle operazioni di I/O sui file

Gli esempi di codice di questo articolo viene descritto come eseguire le operazioni di I/O di file di base. La sezione "Esempio dettagliata" viene descritto come creare un programma di esempio che illustra le operazioni di I/O di file seguenti:
  • Lettura di un file di testo.
  • Scrittura di un file di testo.
  • Visualizzazione delle informazioni sul file.
  • Visualizzazione dell'elenco delle unitÓ disco.
  • Visualizzazione dell'elenco delle cartelle.
  • File dell'elenco.
Nota Se si desidera utilizzare nell'esempio di codice riportato di seguito direttamente, tenere presente quanto segue:
  • ╚ necessario includere lo spazio dei nomi System.IO , come illustrato di seguito.
    using System.IO;
  • ╚ necessario dichiarare la variabile winDir come indicato di seguito.
    string    winDir=System.Environment.GetEnvironmentVariable("windir");
  • ╚ necessario dichiarare la funzione addListItem come indicato di seguito.
    private void addListItem(string value)
    {
    	this.listbox1.Items.Add(value);
    }
    Nota Invece di dichiarazione e utilizzando la funzione addListItem , Ŕ possibile utilizzare direttamente l'istruzione riportata di seguito.
    this.listbox1.Items.Add(value);

Lettura di un file di testo

Nell'esempio di codice riportato di seguito utilizza una classe di StreamReader per leggere il file System.ini. Il contenuto del file viene aggiunto a un controllo ListBox . Il blocco try... catch viene utilizzato per notificare all'applicazione se il file Ŕ vuoto. Esistono molti modi per determinare quando viene raggiunta la fine del file. Questo esempio di codice viene utilizzato il metodo di visualizzazione per esaminare la riga successiva prima di leggere testarlo.
StreamReader reader = new StreamReader(winDir + "\\system.ini");
            try
            {
                do
                {
                    addListItem(reader.ReadLine());
                }
                while (reader.Peek() != -1);
            }

            catch
            {
                addListItem("File is empty.");
            }

            finally
            {
                reader.Close();
            }

Scrittura di un file di testo

Nell'esempio di codice riportato di seguito utilizza una classe StreamWriter , per creare un file e scrivere in un file. Se si dispone di un file esistente, Ŕ possibile aprire il file esistente in modo stesso.
StreamWriter writer = new StreamWriter("c:\\KBTest.txt");
            writer.WriteLine("File created by using StreamWriter class.");
            writer.Close();
            this.listBox1.Items.Clear();
            addListItem("File written to C:\\KBTest.txt");

Visualizzazione delle informazioni sul file

Nell'esempio di codice riportato di seguito utilizza un oggetto di FileInfo per accedere alle proprietÓ un file. Il file Notepad.exe viene utilizzato in questo esempio di codice. Le proprietÓ vengono visualizzate in un controllo ListBox .
FileInfo FileProps = new FileInfo(winDir + "\\notepad.exe");
            addListItem("File Name = " + FileProps.FullName);
            addListItem("Creation Time = " + FileProps.CreationTime);
            addListItem("Last Access Time = " + FileProps.LastAccessTime);
            addListItem("Last Write Time = " + FileProps.LastWriteTime);
            addListItem("Size = " + FileProps.Length);
            FileProps = null;

Visualizzazione dell'elenco delle unitÓ disco

Nell'esempio di codice riportato di seguito utilizza la classe Directory e la classe unitÓ per recuperare un elenco di unitÓ logiche in un sistema. Per questo esempio di codice, i risultati verranno visualizzati in un controllo ListBox .
string[] drives = Directory.GetLogicalDrives();
    foreach(string drive in drives)
    {
        addListItem(drive);
    }

Visualizzazione dell'elenco delle cartelle

Nell'esempio di codice viene utilizzata il metodo GetDirectories della classe Directory per recuperare un elenco di cartelle.
string[] dirs = Directory.GetDirectories(winDir);
    foreach(string dir in dirs)
        {
            addListItem(dir);
        }

File dell'elenco

Nell'esempio di codice viene utilizzata il metodo GetFiles della classe Directory per recuperare un elenco di file.
string[] files = Directory.GetFiles(winDir);
            foreach (string fileName in files)
            {
                addListItem(fileName);
            }
diversi problemi possono verificarsi quando gli utenti tentano di accedere ai file. I file non esistano o i file possono essere utilizzati. Inoltre, gli utenti non possono essere autorizzazioni su file o le cartelle che si tenta di accedere. ╚ necessario considerare queste possibilitÓ quando si scrive codice e si apportano accantonamenti per gestire le eccezioni che possono essere generate.

Procedura di esempio

Per creare un programma di esempio che illustra le operazioni di I/O di base dei file, attenersi alla seguente procedura:
  1. In Visual C# 2005 Express Edition oppure in Visual Studio 2005 consente di creare una nuova applicazione di Windows in Visual C#, che Ŕ denominata WindowsApplication1. Per impostazione predefinita, viene creato un form denominato Form1.
  2. In Esplora soluzioni, fare clic con il pulsante destro del mouse su Form1.cs e quindi scegliere Visualizza codice .
  3. Eliminare tutto il codice nell'editor di codice.
  4. Incollare il codice riportato di seguito nell'editor di codice.
    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                this.button1.Text = "Read Text File";
                this.button2.Text = "Write Text File";
                this.button3.Text = "View File Information";
                this.button4.Text = "List Drives";
                this.button5.Text = "List Subfolders";
                this.button6.Text = "List Files";
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                // How to read a text file.
                // try...catch is to deal with a file that has a length of 0 bytes.
                this.listBox1.Items.Clear();
                StreamReader reader = new StreamReader(winDir + "\\system.ini");
                try
                {
                    do
                    {
                        addListItem(reader.ReadLine());
                    }
                    while (reader.Peek() != -1);
                }
    
                catch
                {
                    addListItem("File is empty.");
                }
    
                finally
                {
                    reader.Close();
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                // How to create and write to a text file.
                StreamWriter writer = new StreamWriter("c:\\KBTest.txt");
                writer.WriteLine("File created by using StreamWriter class.");
                writer.Close();
                this.listBox1.Items.Clear();
                addListItem("File written to C:\\KBTest.txt");
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                // How to retrieve file properties (example uses Notepad.exe).
                this.listBox1.Items.Clear();
                FileInfo FileProps = new FileInfo(winDir + "\\notepad.exe");
                addListItem("File Name = " + FileProps.FullName);
                addListItem("Creation Time = " + FileProps.CreationTime);
                addListItem("Last Access Time = " + FileProps.LastAccessTime);
                addListItem("Last Write Time = " + FileProps.LastWriteTime);
                addListItem("Size = " + FileProps.Length);
                FileProps = null;
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                // How to obtain a list of disk drives.
                this.listBox1.Items.Clear();
                string[] drives = Directory.GetLogicalDrives();
                foreach (string drive in drives)
                {
                    addListItem(drive);
                }
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                // How to obtain a list of folders.
                // Example uses Windows folder.
                this.listBox1.Items.Clear();
                string[] dirs = Directory.GetDirectories(winDir);
                foreach (string dir in dirs)
                {
                    addListItem(dir);
                }
            }
    
            private void button6_Click(object sender, EventArgs e)
            {
                // How to obtain a list of files.
                // Example uses Windows folder.
                this.listBox1.Items.Clear();
                string[] files = Directory.GetFiles(winDir);
                foreach (string fileName in files)
                {
                    addListItem(fileName);
                }
            }
        }
    }
  5. In Esplora soluzioni, fare clic con il pulsante destro del mouse su Form1.Designer.cs e quindi scegliere Visualizza codice .
  6. Eliminare tutto il codice nell'editor di codice.
  7. Incollare il codice riportato di seguito nell'editor di codice. spazio dei nomi
    namespace WindowsApplication1
    {
        partial class Form1
        {
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.IContainer components = null;
    
            private string winDir = System.Environment.GetEnvironmentVariable("windir");
    
            /// <summary>
            /// Clean up any resources that are being used.
            /// </summary>
            /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    
            private void addListItem(string value)
            {
                this.listBox1.Items.Add(value);
            }
    
            #region Windows Form Designer generated code
    
            /// <summary>
            /// Required method for designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                this.listBox1 = new System.Windows.Forms.ListBox();
                this.button1 = new System.Windows.Forms.Button();
                this.button2 = new System.Windows.Forms.Button();
                this.button3 = new System.Windows.Forms.Button();
                this.button4 = new System.Windows.Forms.Button();
                this.button5 = new System.Windows.Forms.Button();
                this.button6 = new System.Windows.Forms.Button();
                this.SuspendLayout();
                // 
                // listBox1
                // 
                this.listBox1.FormattingEnabled = true;
                this.listBox1.Location = new System.Drawing.Point(23, 24);
                this.listBox1.Name = "listBox1";
                this.listBox1.Size = new System.Drawing.Size(525, 251);
                this.listBox1.TabIndex = 0;
                // 
                // button1
                // 
                this.button1.Location = new System.Drawing.Point(23, 290);
                this.button1.Name = "button1";
                this.button1.Size = new System.Drawing.Size(171, 23);
                this.button1.TabIndex = 1;
                this.button1.Text = "button1";
                this.button1.UseVisualStyleBackColor = true;
                this.button1.Click += new System.EventHandler(this.button1_Click);
                // 
                // button2
                // 
                this.button2.Location = new System.Drawing.Point(23, 319);
                this.button2.Name = "button2";
                this.button2.Size = new System.Drawing.Size(171, 23);
                this.button2.TabIndex = 2;
                this.button2.Text = "button2";
                this.button2.UseVisualStyleBackColor = true;
                this.button2.Click += new System.EventHandler(this.button2_Click);
                // 
                // button3
                // 
                this.button3.Location = new System.Drawing.Point(200, 290);
                this.button3.Name = "button3";
                this.button3.Size = new System.Drawing.Size(171, 23);
                this.button3.TabIndex = 3;
                this.button3.Text = "button3";
                this.button3.UseVisualStyleBackColor = true;
                this.button3.Click += new System.EventHandler(this.button3_Click);
                // 
                // button4
                // 
                this.button4.Location = new System.Drawing.Point(200, 319);
                this.button4.Name = "button4";
                this.button4.Size = new System.Drawing.Size(171, 23);
                this.button4.TabIndex = 4;
                this.button4.Text = "button4";
                this.button4.UseVisualStyleBackColor = true;
                this.button4.Click += new System.EventHandler(this.button4_Click);
                // 
                // button5
                // 
                this.button5.Location = new System.Drawing.Point(377, 290);
                this.button5.Name = "button5";
                this.button5.Size = new System.Drawing.Size(171, 23);
                this.button5.TabIndex = 5;
                this.button5.Text = "button5";
                this.button5.UseVisualStyleBackColor = true;
                this.button5.Click += new System.EventHandler(this.button5_Click);
                // 
                // button6
                // 
                this.button6.Location = new System.Drawing.Point(377, 319);
                this.button6.Name = "button6";
                this.button6.Size = new System.Drawing.Size(171, 23);
                this.button6.TabIndex = 6;
                this.button6.Text = "button6";
                this.button6.UseVisualStyleBackColor = true;
                this.button6.Click += new System.EventHandler(this.button6_Click);
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(580, 400);
                this.Controls.Add(this.button6);
                this.Controls.Add(this.button5);
                this.Controls.Add(this.button4);
                this.Controls.Add(this.button3);
                this.Controls.Add(this.button2);
                this.Controls.Add(this.button1);
                this.Controls.Add(this.listBox1);
                this.Name = "Form1";
                this.Text = "Form1";
                this.Load += new System.EventHandler(this.Form1_Load);
                this.ResumeLayout(false);
    
            }
    
            #endregion
    
            private System.Windows.Forms.ListBox listBox1;
            private System.Windows.Forms.Button button1;
            private System.Windows.Forms.Button button2;
            private System.Windows.Forms.Button button3;
            private System.Windows.Forms.Button button4;
            private System.Windows.Forms.Button button5;
            private System.Windows.Forms.Button button6;
        }
    }
  8. Premere F5 per generare ed eseguire l'applicazione.
  9. Fare clic sui pulsanti per visualizzare le diverse operazioni.
Nota Per impostazione predefinita, Visual C# 2005 Express Edition o Visual Studio 2005 aggiunge un form al progetto quando si crea un progetto Windows Form. Il modulo denominato Form1. I due file che rappresentano il form sono denominati nel file Form1.cs e nel file Form1.Designer.cs. ╚ possibile scrivere il codice nel file Form1.cs. Progettazione Windows Form scrive il codice nel file Form1.Designer.cs.

Per ulteriori informazioni su Progettazione Windows Form in Visual C# 2005 Express Edition o in Visual Studio 2005, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/ms173077.aspx

ProprietÓ

Identificativo articolo: 910356 - Ultima modifica: lunedý 11 dicembre 2006 - Revisione: 1.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Express Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual Studio 2005 Team System Architect Edition
  • Microsoft Visual Studio 2005 Team System Developer Edition
  • Microsoft Visual Studio 2005 Team System Team Foundation:
  • Microsoft Visual Studio 2005 Team System Test Edition
Chiavi:á
kbmt kbvs2005std kbvs2005mos kbvs2005exp kbvs2005pro kbvs2005search kbio kbhowtomaster kbsample kbstepbystep kbcodesnippet kbcode kbhowto KB910356 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 910356
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com