演示文件 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;
列出磁盘驱动器
此示例代码使用
Directory 和
Drive 类列出系统上的逻辑驱动器。本示例的结果显示在
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); }
用户访问文件时可能会出现多种错误。文件可能不存在、可能在使用中,或者用户对试图访问的文件夹中的文件无访问权限。在编写代码和处理可能产生的异常时,将这些可能性考虑在内是很重要的。