Cómo realizar las operaciones de E/s de archivos básicos en Visual C# 2005 Express Edition

Seleccione idioma Seleccione idioma
Id. de artículo: 910356 - Ver los productos a los que se aplica este artículo
Para obtener una versión de Microsoft Visual Basic .NET de este artículo, consulte 304427.
Para obtener una versión de Microsoft Visual C++ .NET de este artículo, consulte 307398.
Para obtener una versión de Microsoft Visual C# .NET de este artículo, consulte 304430.
Este artículo se hace referencia el espacio de nombres System.IO de biblioteca de clases de Microsoft .NET Framework.
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

Este artículo paso a paso describe cómo realizar las operaciones básicas de E/s de archivos en Microsoft Visual C# 2005 Express. Si eres nuevo en Microsoft .NET Framework, encontrará que el modelo de objeto para las operaciones de archivo en Microsoft .NET es similar al modelo de objetos FileSystemObject , que es popular con muchos desarrolladores de Microsoft Visual Studio 6.0. Para facilitar la transición, la funcionalidad descrita en este artículo se basa en el siguiente artículo de Knowledge Base:
186118Cómo utilizar FileSystemObject con Visual Basic
Puede utilizar el objeto FileSystemObject en. NET. Dado que el objeto FileSystemObject es un componente de modelo de objetos componentes (COM), .NET requiere que se tiene acceso el objeto FileSystemObject mediante la capa de interoperabilidad. Si desea utilizar un contenedor, .NET genera un contenedor para el componente. Sin embargo, las siguientes clases en .NET Framework ofrecen una funcionalidad que no está disponible cuando se utiliza el objeto FileSystemObject , sin la sobrecarga de la capa de interoperabilidad:
  • La clase File
  • La clase FileInfo
  • La clase Directory
  • La clase DirectoryInfo
  • Otras clases relacionadas

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los service pack recomendados que se necesitarán:
  • Microsoft Visual C# 2005 Express Edition o Microsoft Visual Studio 2005

Operaciones de E/S de archivos demostradas

Los ejemplos de código en este artículo describen cómo realizar las operaciones de E/s de archivos básico. En la sección "Ejemplo paso a paso" se describe cómo crear un programa de ejemplo que muestra las operaciones de E/s de archivo siguientes:
  • Leer un archivo de texto.
  • Escribir un archivo de texto.
  • Ver información de un archivo.
  • Enumerar unidades de disco.
  • Enumerar carpetas.
  • Enumerar archivos.
Nota Si desea utilizar los siguientes ejemplos de código directamente, considere lo siguiente:
  • Debe incluir el espacio de nombres System.IO como sigue.
    using System.IO;
  • Debe declarar la variable winDir como sigue.
    string    winDir=System.Environment.GetEnvironmentVariable("windir");
  • Debe declarar la función addListItem como sigue.
    private void addListItem(string value)
    {
    	this.listbox1.Items.Add(value);
    }
    Nota En lugar de declarar y utilizar la función addListItem , puede utilizar la siguiente instrucción directamente.
    this.listbox1.Items.Add(value);

Leer un archivo de texto

En el ejemplo de código siguiente se utiliza una clase StreamReader para leer el archivo System.ini. El contenido del archivo se agrega a un control ListBox . El bloque try... catch se utiliza para notificar a la aplicación si el archivo está vacío. Hay muchas formas de determinar cuándo se alcanza el final del archivo. Este ejemplo de código utiliza el método Peek para examinar la línea siguiente antes de leer de él.
StreamReader reader = new StreamReader(winDir + "\\system.ini");
            try
            {
                do
                {
                    addListItem(reader.ReadLine());
                }
                while (reader.Peek() != -1);
            }

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

            finally
            {
                reader.Close();
            }

Escribir un archivo de texto

En el ejemplo de código siguiente se utiliza una clase StreamWriter para crear un archivo y escribir en un archivo. Si tiene un archivo existente, puede abrir el archivo existente en la misma forma.
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 información de un archivo

En el ejemplo de código siguiente se utiliza un objeto FileInfo tener acceso a propiedades del archivo. El archivo Notepad.exe se utiliza en este ejemplo de código. Las propiedades aparecen en un control 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;

Enumerar unidades de disco

En el ejemplo de código siguiente se utiliza la clase Directory y la clase unidad para recuperar una lista de las unidades lógicas en un sistema. En este ejemplo de código, los resultados aparecen en un control ListBox .
string[] drives = Directory.GetLogicalDrives();
    foreach(string drive in drives)
    {
        addListItem(drive);
    }

Enumerar carpetas

En el ejemplo de código siguiente se utiliza el método GetDirectories de la clase Directory para recuperar una lista de carpetas.
string[] dirs = Directory.GetDirectories(winDir);
    foreach(string dir in dirs)
        {
            addListItem(dir);
        }

Enumerar archivos

En el ejemplo de código siguiente se utiliza el método GetFiles de la clase Directory para recuperar una lista de archivos.
string[] files = Directory.GetFiles(winDir);
            foreach (string fileName in files)
            {
                addListItem(fileName);
            }
pueden producirse varios problemas cuando los usuarios intentan tener acceso a archivos. Los archivos no existen o pueden los archivos que se va a utilizarse. Además, los usuarios no pueden tener permisos en los archivos o las carpetas están intentando obtener acceso. Debe considerar estas posibilidades al escribir código y realizar provisiones controle las excepciones que pueden generarse.

Ejemplo paso a paso

Para crear un programa de ejemplo que demuestra las operaciones de E/s de archivos básico, siga estos pasos:
  1. En Visual C# 2005 Express Edition o en Visual Studio 2005, cree una nueva aplicación de Windows de Visual C# que se denomina WindowsApplication1. De forma predeterminada, se crea un formulario que se denomina Form1.
  2. En el Explorador de soluciones, haga clic con el botón secundario del mouse en Form1.cs y, a continuación, haga clic en Ver código .
  3. Elimine todo el código en el Editor de código.
  4. Pegue el código siguiente en el 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. En el Explorador de soluciones, haga clic con el botón secundario del mouse en Form1.Designer.cs y, a continuación, haga clic en Ver código .
  6. Elimine todo el código en el Editor de código.
  7. Pegue el código siguiente en el Editor de código. espacio de nombres
    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. Presione F5 para generar y ejecutar la aplicación.
  9. Haga clic en los botones para ver las distintas acciones.
Nota De forma predeterminada, Visual C# 2005 Express Edition o Visual Studio 2005 agrega un formulario al proyecto cuando se crea un proyecto de formularios Windows Forms. El formulario se denomina Form1. Los dos archivos que representan el formulario se denominan el archivo Form1.cs y el archivo Form1.Designer.cs. Escribir el código en el archivo Form1.cs. El Diseñador de Windows Forms escribe el código en el archivo Form1.Designer.cs.

Para obtener más información acerca el Diseñador de Windows Forms en Visual C# 2005 Express Edition o en Visual Studio 2005, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms173077.aspx

Propiedades

Id. de artículo: 910356 - Última revisión: lunes, 11 de diciembre de 2006 - Versión: 1.3
La información de este artículo se refiere 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
Palabras clave: 
kbmt kbvs2005std kbvs2005mos kbvs2005exp kbvs2005pro kbvs2005search kbio kbhowtomaster kbsample kbstepbystep kbcodesnippet kbcode kbhowto KB910356 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 910356

Enviar comentarios

 

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