如何在 Visual C# 中执行基本的文件 I/O

时间:2022-08-30 18:25:12

演示文件 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 文件。该文件的内容被添加到一个 ListBox 控件中。其中的 try...catch 块用于在文件为空时向程序发出警报。有多种方法可确定是否到达文件结尾;本示例使用 Peek 方法在读取下一行之前先检验该行。
    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 using StreamWriter class.");    writer.Close();    this.listbox1.Items.Clear();    addListItem("File Written to C://KBTest.txt");				

查看文件信息

此示例代码使用一个 FileInfo 对象来访问一个文件的属性。此示例中使用了 Notepad.exe。属性在 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;				

列出磁盘驱动器

此示例代码使用 DirectoryDrive 类列出系统上的逻辑驱动器。本示例的结果显示在 ListBox 控件中。
    string[] drives = Directory.GetLogicalDrives();    foreach(string drive in drives)    {        addListItem(drive);    }				

列出子文件夹

此示例代码使用 Directory 类的 GetDirectories 方法获取文件夹列表。
    string[] dirs = Directory.GetDirectories(winDir);    foreach(string dir in dirs)        {            addListItem(dir);        }				

列出文件

此示例使用 Directory 类的 GetFiles 方法获取文件夹列表。
    string[] files= Directory.GetFiles(winDir);    foreach (string i in files)    {        addListItem(i);    }				
用户访问文件时可能会出现多种错误。文件可能不存在、可能在使用中,或者用户对试图访问的文件夹中的文件无访问权限。在编写代码和处理可能产生的异常时,将这些可能性考虑在内是很重要的。