如何在 Visual C# 2005年速成版执行基本的文件 I/O 操作

文章翻译 文章翻译
文章编号: 910356 - 查看本文应用于的产品
为这篇文章的一个 Microsoft Visual Basic.net 版本,请参阅 304427
为这篇文章的一个 Microsoft Visual c + +.net 版本,请参阅 307398
为这篇文章的一个 Microsoft Visual C#.net 版本,请参阅 304430
这篇文章是指 System.IO Microsoft.net 框架类库命名空间。
展开全部 | 关闭全部

本文内容

简介

本分步指南介绍了如何执行基本的文件 I/O 操作 Microsoft Visual C# 2005年速成版中。如果您在 Microsoft.net 框架的新您会发现在 Microsoft.net 中的文件操作的对象模型是类似于与很多 Microsoft Visual Studio 6.0 开发人员常用的 FileSystemObject 对象模型。为了便于过渡,这篇文章中描述的功能基于下面的 Microsoft 知识库文章:
186118如何在 Visual Basic 中使用 FileSystemObject
您仍可以在.net 中使用 FileSystemObject 对象。因为 FileSystemObject 对象是一个组件对象模型 (COM) 组件,.net 将要求您通过互操作层访问 FileSystemObject 对象。如果您想要使用的包装,.net 为您生成该组件的包装。然而,在.net 框架中,下面的类提供使用 FileSystemObject 对象的无需互操作的图层的开销时不可用的功能:
  • 文件
  • FileInfo
  • 目录
  • DirectoryInfo
  • 其他相关的类

要求

下面的列表概述了建议的硬件、 软件、 网络的基础结构和服务包,您需要:
  • Microsoft Visual C# 2005年速成版或 Microsoft Visual Studio 2005

演示的文件 I/O 操作

在这篇文章中的代码示例说明如何执行基本的文件 I/O 操作。"分步示例"部分介绍了如何创建一个演示下列文件 I/O 操作的示例程序:
  • 读取文本的文件。
  • 写入文本文件。
  • 查看文件信息。
  • 列出磁盘驱动器。
  • 列表文件夹。
  • 列出的文件。
注意如果您想要直接使用下面的代码示例,请考虑以下事项:
  • 必须包括 System.IO 命名空间,如下所示。
    using System.IO;
  • 必须声明 winDir 变量,如下所示。
    string    winDir=System.Environment.GetEnvironmentVariable("windir");
  • 必须声明 addListItem 函数,如下所示。
    private void addListItem(string value)
    {
    	this.listbox1.Items.Add(value);
    }
    注意声明,并使用 addListItem 函数而不是您可以直接使用下面的语句。
    this.listbox1.Items.Add(value);

读取文本文件

下面的代码示例使用 StreamReader 类来读取 System.ini 文件。该文件的内容添加到 列表框 控件。尝试...catch 块用于通知应用程序,如果该文件为空。有许多方法来确定何时到达文件结尾。此代码示例使用该 查看 方法读取 it.之前检查下一行
StreamReader reader = new StreamReader(winDir + "\\system.ini");
            try
            {
                do
                {
                    addListItem(reader.ReadLine());
                }
                while (reader.Peek() != -1);
            }

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

            finally
            {
                reader.Close();
            }

写入文本文件

要创建一个文件,然后将写入一个文件,下面的代码示例使用 StreamWriter 类。如果现有的文件可以打开现有的文件中
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");
相同的方式。

查看文件信息

下面的代码示例使用 FileInfo 对象来访问文件的属性。在此代码示例使用 Notepad.exe 文件。该属性将出现在
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;
列表框 控件。

列表中的磁盘驱动器

下面的代码示例使用 目录 类和 $ 在 驱动器 类检索的逻辑驱动器的系统上的列表。为此代码示例结果将显示在
string[] drives = Directory.GetLogicalDrives();
    foreach(string drive in drives)
    {
        addListItem(drive);
    }
列表框 控件。

列表文件夹

下面的代码示例使用的 目录GetDirectories 方法检索一个列表中的
string[] dirs = Directory.GetDirectories(winDir);
    foreach(string dir in dirs)
        {
            addListItem(dir);
        }
文件夹。

列出文件

下面的代码示例使用的 目录GetFiles 方法检索一个列表中的
string[] files = Directory.GetFiles(winDir);
            foreach (string fileName in files)
            {
                addListItem(fileName);
            }
当用户尝试访问文件时,可能会出现各种问题。 文件。文件可能不存在,或者文件可能会被使用。 此外,用户可能没有权限对该文件或他们尝试访问该文件夹。 当您编写代码并进行处理,可能会生成该异常的规定,您必须考虑这些可能性。

逐步骤示例

若要进行演示基本的文件 I/O 操作的示例程序,请按照下列步骤操作:
  1. 在 Visual C# 2005年速成版中或在 Visual Studio 2005 中,创建新的 Visual C# Windows 应用程序名为 WindowsApplication1。默认状态下,创建名为 Form1 的窗体。
  2. 在解决方案资源管理器中,右击 Form1.cs,然后单击 查看代码
  3. 删除所有代码代码编辑器中。
  4. 将以下代码粘贴到代码编辑器。
    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. 在解决方案资源管理器中,用鼠标右键单击 Form1.Designer.cs,然后单击 查看代码
  6. 删除所有代码代码编辑器中。
  7. 将以下代码粘贴到代码编辑器。命名空间
    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. 按 F5 生成并运行该应用程序。
  9. 单击按钮以查看不同的操作。
注意默认状态下,Visual C# 2005年速成版或 Visual Studio 2005 向一个窗体项目时创建一个 Windows 窗体项目中。在窗体是名为 Form1。表示窗体的两个文件被命名 Form1.cs 文件和 $ Form1.designer.cs 文件。 Form1.cs 文件中编写代码。Windows 窗体设计器在 Form1.designer.cs 文件中写入代码。

有关 Windows 窗体设计器在 Visual C# 2005年速成版中或在 Visual Studio 2005 中的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
http://msdn2.microsoft.com/en-us/library/ms173077.aspx

属性

文章编号: 910356 - 最后修改: 2006年12月11日 - 修订: 1.3
这篇文章中的信息适用于:
  • 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
关键字:?
kbmt kbvs2005std kbvs2005mos kbvs2005exp kbvs2005pro kbvs2005search kbio kbhowtomaster kbsample kbstepbystep kbcodesnippet kbcode kbhowto KB910356 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 910356
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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