Como efectuar as operações de E/s de ficheiro básicos no Visual C# 2005 Express Edition

Traduções de Artigos Traduções de Artigos
Artigo: 910356 - Ver produtos para os quais este artigo se aplica.
Para obter uma Microsoft Visual Basic .NET versão deste artigo, consulte 304427.
Para obter uma versão de Microsoft Visual C++ .NET deste artigo, consulte 307398.
Para obter uma Microsoft Visual C# .NET versão deste artigo, consulte 304430.
Neste artigo é referido ao espaço de Microsoft .NET Framework Class Library System.IO nomes.
Expandir tudo | Reduzir tudo

Nesta página

INTRODUÇÃO

Este artigo passo a passo descreve como efectuar as operações de E/s de ficheiro básico no Microsoft Visual C# 2005 Express Edition. Se for uma novidade para o Microsoft .NET Framework, irá descobrir que o modelo de objecto para as operações de ficheiro no Microsoft .NET é semelhante ao modelo de objecto FileSystemObject é popular com muitos programadores do Microsoft Visual Studio 6.0. Para facilitar a transição, a funcionalidade descrita neste artigo baseia-se o seguinte artigo da base de dados de conhecimento da Microsoft sobre:
186118Como utilizar FileSystemObject com o Visual Basic
Pode ainda utilizar o objecto FileSystemObject no .NET. Uma vez que o objecto FileSystemObject é um componente COM (Component Object Model), .NET necessita que aceder ao objecto FileSystemObject através da camada de interoperabilidade. Se pretender utilizar um dispositivo de moldagem, .NET gera um wrapper para o componente por si. No entanto, as seguintes classes no .NET Framework oferecem funcionalidades que não está disponível quando use o objeto FileSystemObject , sem a sobrecarga da camada interoperabilidade:
  • A classe de ficheiro
  • A classe FileInfo
  • A classe de directório
  • A classe DirectoryInfo
  • Outras classes relacionadas

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
  • Microsoft Visual C# 2005 Express Edition ou Microsoft Visual Studio 2005

Operações de E/s de ficheiro demonstradas

Exemplos de código neste artigo descrevem como executar as operações de E/s de ficheiro básicos. A secção "Exemplo passo a passo" descreve como criar um programa de exemplo que demonstra seguintes operações de E/s de ficheiro:
  • Ler um ficheiro de texto.
  • Escreve um ficheiro de texto.
  • Ver informações de ficheiro.
  • Lista unidades de disco.
  • Lista de pastas.
  • Ficheiros de lista.
Nota Se pretender utilizar os seguintes exemplos de código directamente, considere o seguinte:
  • Tem de incluir o espaço de nomes System.IO da seguinte forma.
    using System.IO;
  • É necessário declarar a variável winDir da seguinte forma.
    string    winDir=System.Environment.GetEnvironmentVariable("windir");
  • É necessário declarar a função addListItem da seguinte forma.
    private void addListItem(string value)
    {
    	this.listbox1.Items.Add(value);
    }
    Nota Em vez de declarar e utilizar a função addListItem , pode utilizar a seguinte instrução directamente.
    this.listbox1.Items.Add(value);

Ler um ficheiro de texto

O exemplo de código seguinte utiliza uma classe StreamReader para ler o ficheiro System.ini. O conteúdo do ficheiro é adicionado a um controlo de caixa de listagem . O bloco tente... catch é utilizado para notificar a aplicação, se o ficheiro está vazio. Existem várias formas para determinar quando é atingido o fim do ficheiro. Este exemplo de código utiliza o método observar examinar a linha seguinte antes de ler mesmo.
StreamReader reader = new StreamReader(winDir + "\\system.ini");
            try
            {
                do
                {
                    addListItem(reader.ReadLine());
                }
                while (reader.Peek() != -1);
            }

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

            finally
            {
                reader.Close();
            }

Escrever um ficheiro de texto

O exemplo de código seguinte utiliza uma classe de StreamWriter para criar um ficheiro e escrever para um ficheiro. Se tiver um ficheiro existente, pode abrir o ficheiro existente no mesmo modo
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");

Ver informações de ficheiro

O exemplo de código seguinte utiliza um objecto FileInfo para aceder a propriedades de um ficheiro. O ficheiro Notepad.exe é utilizado neste exemplo de código. As propriedades aparecem num controlo de caixa de listagem .
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;

Lista unidades de disco

O exemplo de código seguinte utiliza a classe de directório e a classe de unidade para obter uma lista de unidades lógicas num sistema. Neste exemplo de código, os resultados aparecem num controlo de caixa de listagem .
string[] drives = Directory.GetLogicalDrives();
    foreach(string drive in drives)
    {
        addListItem(drive);
    }

Lista de pastas

O exemplo de código seguinte utiliza o método GetDirectories da classe Directory para obter uma lista de pastas.
string[] dirs = Directory.GetDirectories(winDir);
    foreach(string dir in dirs)
        {
            addListItem(dir);
        }

Listar ficheiros

O exemplo de código seguinte utiliza o método GetFiles da classe Directory para obter uma lista de ficheiros.
string[] files = Directory.GetFiles(winDir);
            foreach (string fileName in files)
            {
                addListItem(fileName);
            }
podem ocorrer vários problemas quando os utilizadores tentam aceder a ficheiros. Os ficheiros não existem ou os ficheiros podem ser a ser utilizados. Além disso, os utilizadores não poderão ter permissões dos ficheiros ou pastas estão a tentar aceder. Tem de considerar estas possibilidades quando escrever código e efectuar Provisões para processar as excepções que podem ser geradas.

Exemplo passo a passo

Para criar um programa de exemplo que demonstra as operações de E/s de ficheiro básicos, siga estes passos:
  1. No Visual C# 2005 Express Edition ou no Visual Studio 2005, crie uma nova aplicação Visual C# Windows denominado WindowsApplication1. Por predefinição, é criado um formulário é denominado Form1.
  2. No Solution Explorer, clique com o botão direito do rato em Form1.cs e, em seguida, clique em Código .
  3. Elimine todo o código no Editor de códigos.
  4. Cole o seguinte código no Editor de código.
    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. No Solution Explorer, clique com o botão direito do rato Form1.Designer.cs e, em seguida, clique em Código .
  6. Elimine todo o código no Editor de códigos.
  7. Cole o seguinte código no Editor de código. espaço de nomes
    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. Prima F5 para compilar e executar a aplicação.
  9. Clique nos botões para ver as acções diferentes.
Nota Por predefinição, Visual C# 2005 Express Edition ou o Visual Studio 2005 adiciona um formulário ao projecto quando cria um projecto de Windows Forms. O formulário é denominado Form1. Os dois ficheiros que representam o formulário são denominados Form1.cs ficheiro e o ficheiro Form1.Designer.cs. Escreva o código no ficheiro de Form1.cs. O Windows Forms Designer escreve o código no ficheiro Form1.Designer.cs.

Para obter mais informações sobre o Windows Forms Designer no Visual C# 2005 Express Edition ou no Visual Studio 2005, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms173077.aspx

Propriedades

Artigo: 910356 - Última revisão: 11 de dezembro de 2006 - Revisão: 1.3
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional
  • 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
Palavras-chave: 
kbmt kbvs2005std kbvs2005mos kbvs2005exp kbvs2005pro kbvs2005search kbio kbhowtomaster kbsample kbstepbystep kbcodesnippet kbcode kbhowto KB910356 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 910356

Submeter comentários

 

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