第8章 文件输入输出编程.pdf

上传人:qwe****56 文档编号:70021275 上传时间:2023-01-14 格式:PDF 页数:41 大小:2.55MB
返回 下载 相关 举报
第8章 文件输入输出编程.pdf_第1页
第1页 / 共41页
第8章 文件输入输出编程.pdf_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《第8章 文件输入输出编程.pdf》由会员分享,可在线阅读,更多相关《第8章 文件输入输出编程.pdf(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 8 章 文件输入输出编程 8.1 文件输入输出编程概述 文件系统是操作系统的重要组成部分。在.NET 框架中,是通过 System.IO 命名空间来进行文件的访问和处理功能,该命名空间中的对象可分为 3 类,分别是操作流的对象、操作文件的对象和操作目录的对象。操作流的对象:主要包括文件流、内存流及读写这些流的对象。操作文件的对象:主要包括对文件执行创建、移动、删除等操作,还可以获取文件的信息,如创建时间、修改时间、扩展名、是否为只读等信息。操作目录的对象:主要包括对文件夹目录进行创建、移动、删除等操作,还可以对磁盘信息进行访问。8.2 流的读写 流是字节序列的抽象概念,如文件的操作、输入/

2、输出设备、内部进程通信管道等。Stream类及其派生类提供这些不同类型的输入和输出的一般视图,这样程序员就不必熟悉操作系统和基础设备的具体细节,也可以对流进行操作。流常用的三个基本操作如下:1、读取流:该操作是从流到数据结构的数据传输。2、写入流:该操作是从数据结构到流的数据传输。3、流支持查找:查找是对流内的当前位置进行查询与修改。8.2.1 StreamReader 对象 StreamReader 对象的主要功能是从文件中读取字符,还可以指定编码格式,即UTF-8 和 Unicode,默认编码格式为 UTF-8。该对象常用属性及方法意义如下:CurrentEncoding 属性:获取当前

3、System.IO.StreamReader 对象正在使用的当前字符编码。BaseStream 属性:返回 Stream 流。EndOfStream 属性:获取一个值,该值表示当前的流位置是否在流的末尾。如果当前的流位置在流的末尾,则为 true;否则为 false。StreamReader 方法:为指定的流初始化 System.IO.StreamReader 对象的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小。Read 方法:读取输入流中的下一个字符并使该字符的位置提升一个字符。注意,输入流中表示为 System.Int32 对象的下一个字符。如果不再有可用的字符,则为-1。

4、0 0 第 8 章 文件输入输出编程 2 ReadLine 方法:从当前流中读取一行字符并将数据作为字符串返回。注意,输入流中的下一行;如果到达了输入流的末尾,则为 null。Peek 方法:返回下一个可用的字符,但不使用它。ReadToEnd 方法:从流的当前位置到末尾读取流。Dispose 方法:关闭 Stream 流,释放 System.IO.StreamReader 使用的未托管资源,同时还可以根据需要释放托管资源。DiscardBufferedData 方法:允许 System.IO.StreamReader 对象丢弃其当前数据。Close 方法:关闭 System.IO.Strea

5、mReader 对象和 Stream 流,并释放与读取器关联的所有系统资源。8.2.2 StreamWriter 对象 StreamWriter 对象的主要功能是从将字符串写入文件,还可以指定编码格式,即UTF-8 和 Unicode,默认编码格式为 UTF-8,默认缓冲区的大小为 4KB。该对象常用属性及方法意义如下:BaseStream 属性:获取一个正在写入的 Stream 对象。Encoding 属性:获取写入流时的编码。AutoFlush 属性:确定是否每次调用 Write 方法后自动把数据从缓冲区刷新到流中。StreamWriter 方法:用指定的编码及缓冲区大小,为指定的流初始化

6、 StreamWriter 对象的新实例。Write 方法:将字符串写入流。Flush 方法:清理当前编写器的所有缓冲区,并使所有缓冲数据写入 Stream流。Dispose 方法:释放由 StreamWriter 占用的非托管资源,还可以另外再释放托管资源。Close 方法:关闭当前的 StreamWriter 对象和 Stream 流。实例 StreamReader 和 StreamWriter 对象的应用 下面通过具体实例讲解一下 StreamReader 和 StreamWriter 对象的应用。1)单击菜单栏中的“文件/新建/项目”(快捷键:Ctrl+Shift+N),打开“新建项目

7、”对话框,项目类型选择“Visual C#”,模板选择“Windows 窗体应用程序”项.,名称为“Ex08_1”。2)设置好各参数后,单击“确定”按钮,就可以创建 Windows 窗体应用程序,然后设置“Text”属性为“StreamReader 和 StreamWriter 对象的应用”,如图 8-1 所示。峰杰工作室 3 图 8-1 设置窗体属性 3)添加框架控件。单击工具箱中的控件,在窗体中单击添加该控件,并设置其“Text”属性为“显示打开文件的内容”,如图 8-2 所示。图 8-2 添加框架控件 4)添加文本框控件。单击工具箱中的控件,在窗体中添加该控件,设置其“Multiline

8、”属性为“True”,“ScrollBars”属性为“Vertical”,调整其大小及位置后效果如图 8-3 所示。图 8-3 添加文本框控件 5)添加打开对话框公用控件。单击工具箱中的控件,然后按下鼠标左键在窗体上绘制,就可以添加到应用程序中。6)添加保存对话框公用控件。单击工具箱中的控件,然后按下鼠标0 0 第 8 章 文件输入输出编程 4 左键在窗体上绘制,就可以添加到应用程序中,如图 8-4 所示。图 8-4 添加 Windows 公用控件 7)最后在窗体中添加 3 个按钮,并设置他们的“Text”属性分别为“打开文件”、“保存文件”和“退出程序”,如图 8-5 所示。图 8-5 添加

9、按钮 8)添加代码。双击窗体,进入代码视图,首先导入 System.IO 命名空间,从而可以调用StreamReader 对象和 StreamWriter 对象,具体如下:9)定义公共变量,用于存储记事本文件的文件名,具体代码如下:10)双击“打开文件”按钮,添加该按钮的单击事件代码,具体如下:峰杰工作室 5 11)双击“保存文件”按钮,添加该按钮的单击事件代码,具体如下:0 0 第 8 章 文件输入输出编程 6 12)双击“退出程序”按钮,添加该按钮的单击事件代码,具体如下:13)运行程序。单击菜单栏中的“调试/启动调试”命令(快捷键:F5)或单击工具箱中的按钮,运行程序,单击“打开文件”按

10、钮,弹出“打开”对话框,如图 8-6所示。图 8-6 打开对话框 14)单击“打开”按钮,就可以把该文件中的内容显示在文本框中,效果如图 8-7 所示。峰杰工作室 7 图 8-7 打开文件并显示其内容 15)在文本框中,就可以实现文本的输入、删除、复制、粘帖等操作,操作后,单击“保存文件”按钮,弹出“另存为”对话框,如图 8-8 所示。图 8-8 另存为对话框 16)单击“保存”按钮,就可以保存修改的文本文件。单击“退出程序”按钮,就可以退出程序。8.2.3 FileStream 对象 FileStream 对象实现对文件进行读取、写入、打开、关闭操作,支持随机访问文件。可以使用同步方式打开文

11、件按进行读写,也可以用异步方式打开文件进行读写。FileStream 对象是常用的文件流处理方式,并且这种方式对于速度和安全都是一个保障。该对象常用属性及方法意义如下:CanRead 属性:获取一个值,该值指示当前流是否支持读取。如果流支持读取,则为 true;如果流已关闭或是通过只写访问方式打开的,则为 false。CanSeek 属性:获取一个值,该值指示当前流是否支持查找。如果流支持查找,则为 true;如果流已关闭或者如果 FileStream 是从操作系统句柄(如管道或到控制台的输出)构造的,则为 false。CanWrite 属性:获取一个值,该值指示当前流是否支持写入。如果流支持

12、写入,则为 true;如果流已关闭或是通过只读访问方式打开的,则为 false。Handle 属性:获取当前 FileStream 对象所封装文件的操作系统文件句柄。IsAsync 属性:获取一个值,该值指示 FileStream 是异步还是同步打开的。如果 FileStream 是异步打开的,则为 true,否则为 false。Length 属性:获取用字节表示的流长度。Name 属性:获取传递给构造函数的 FileStream 的名称。Position 属性:获取或设置此流的当前位置。SafeFileHandle 属性:获取 Microsoft.Win32.SafeHandles.Safe

13、FileHandle 对象,该对象表示当前 System.IO.FileStream 对象封装的文件的操作系统文件句柄。0 0 第 8 章 文件输入输出编程 8 FileStream 方法:使用指定的路径、创建模式、访问权限和共享权限、缓冲区大小、附加文件选项、访问控制和审核安全初始化 System.IO.FileStream 对象的新实例。ReadByte 方法:从文件中读取一个字节,并将读取位置提升一个字节。WriteByte 方法:将一个字节写入文件流的当前位置。Read 方法:从流中读取字节块并将该数据写入给定缓冲区中。Write 方法:使用从缓冲区读取的数据将字节块写入该流。Seek

14、 方法:将该流的当前位置设置为给定值。Lock 方法:允许读取访问的同时防止其他进程更改 System.IO.FileStream。Unlock 方法:允许其他进程访问以前锁定的某个文件的全部或部分。SetLength 方法:将该流的长度设置为给定值。Flush 方法:清除该流的所有缓冲区会使得所有缓冲的数据都将写入到文件系统。BeginRead 方法:开始异步读。EndRead 方法:等待挂起的异步读取完成。BeginWrite 方法:开始异步写。EndWrite 方法:结束异步写入,在 I/O 操作完成之前一直阻止。Dispose 方法:释放由 System.IO.FileStream 占

15、用的非托管资源,还可以另外再释放托管资源。FileStream 方法:确保垃圾回收器回收 FileStream 时释放资源并执行其他清理操作。实例 FileStream 对象的应用 下面通过具体实例讲解一下 FileStream 对象的应用。1)单击菜单栏中的“文件/新建/项目”(快捷键:Ctrl+Shift+N),打开“新建项目”对话框,项目类型选择“Visual C#”,模板选择“Windows 窗体应用程序”项.,名称为“Ex08_2”。2)设置好各参数后,单击“确定”按钮,就可以创建 Windows 窗体应用程序,然后设置“Text”属性为“FileStream 对象的应用”,如图 8

16、-9 所示。图 8-9 设置窗体属性 3)添加框架控件。单击工具箱中的控件,在窗体中单击添加该控件,并设置其“Text”属性为“请输入要创建的文件名及扩展名”,如图 8-10 所示。峰杰工作室 9 图 8-10 添加框架控件 4)添加文本框控件。单击工具箱中的控件,在窗体中添加该控件,调整其大小及位置后效果如图 8-11 所示。图 8-11 添加文本框控件 5)最后在窗体中添加 2 个按钮,设置他们的“Text”属性分别为“创建文件”和“退出程序”,如图 8-12 所示。图 8-12 添加按钮 6)添加代码。双击窗体,进入代码视图,首先导入 System.IO 命名空间,从而可以调用FileS

17、tream 对象,具体代码如下:7)双击“创建文件”按钮,添加该按钮的单击事件代码,具体如下:0 0 第 8 章 文件输入输出编程 10 8)双击“退出程序”按钮,添加该按钮的单击事件代码,具体如下:private void button2_Click(object sender,EventArgs e)this.Close();9)运行程序。单击菜单栏中的“调试/启动调试”命令(快捷键:F5)或单击工具箱中的按钮,运行程序,如果不输入要创建的文件名,单击“创建文件”按钮,就会弹出提示对话框,如图 8-13 所示。图 8-13 文件名不能为空提示对话框 10)在文本框中输入要创建的文件名和扩展

18、名,单击“创建文件”按钮,如果该文件不存在,则会弹出创建文件成功提示对话框,如图 8-14 所示。图 8-14 创建文件成功提示对话框 11)这样就在本应用程序的“binDebug”文件夹中成功地创建了 myword.doc 文件,如图 8-15 所示。峰杰工作室 11 图 8-15 创建的文件 12)如果输入的文件名已存在,单击“创建文件”按钮,则会弹出文件已存在提示对话框,如图 8-16 所示。图 8-16 文件已存在提示对话框 13)单击“退出程序”按钮,则就可以退出本程序。8.3 文件管理对象 在.NET 框架中,利用 File 对象和 FileInfo 对象来管理文件,这两个对象功能

19、类似,区别是 File 对象是一个静态对象,不能实例化,可以使用该对象的静态方法来管理文件。而 FileInfo 对象则需要实例化,然后再可以使用 FileInfo 对象的实例方法来管理文件。8.3.1 File 对象 File 对象封装了文件的基本操作,即文件的创建、复制、删除、移动、打开功能。该对象中的所有方法都是静态方法,所以可以直接通过对象名来调用它们而不用创建对象实例。该对象常用方法意义如下:Create 方法:创建或覆盖具有指定的缓冲区大小、文件选项和文件安全性的指定文件。CreateText 方法:创建或打开一个文件用于写入 UTF-8 编码的文本。Open 方法:打开指定路径上

20、的 System.IO.FileStream,具有指定的读、写或读/写访问模式以及指定的共享选项。OpenRead 方法:打开现有文件以进行读取。OpenText 方法:打开现有 UTF-8 编码文本文件以进行读取。0 0 第 8 章 文件输入输出编程 12 OpenWrite 方法:打开现有文件以进行写入。ReadAllLines 方法:打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。ReadAllText 方法:打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。Replace 方法:用其他文件的内容替换指定文件的内容,删除原始文件,并创建被替换文件的备份和(可选)

21、忽略合并错误。WriteAllLines 方法:创建一个新文件,使用指定的编码在其中写入指定的字符串数组,然后关闭文件。如果目标文件已存在,则覆盖该文件。WriteAllText 方法:创建一个新文件,在其中写入指定的字符串,然后关闭文件。如果目标文件已存在,则覆盖该文件。AppendAllText 方法:将指定的字符串追加到文件中,如果文件还不存在则创建该文件。Move 方法:将指定文件移到新位置,并提供指定新文件名的选项。Copy 方法:将现有文件复制到新文件。允许覆盖同名的文件。Delete 方法:删除指定的文件。如果指定的文件不存在,则不引发异常。Exists 方法:确定指定的文件是否

22、存在。Decrypt 方法:解密由当前帐户使用 System.IO.File.Encrypt 方法加密的文件。Encrypt 方法:将某个文件加密,使得只有加密该文件的帐户才能将其解密。GetAccessControl 方法:获取一个 System.Security.AccessControl.FileSecurity 对象,它封装指定文件的访问控制列表(ACL)条目。GetCreationTime 方法:返回指定文件或目录的创建日期和时间。GetLastAccessTime 方法:返回上次访问指定文件或目录的日期和时间。GetLastWriteTime 方法:返回上次写入指定文件或目录的日期

23、和时间。SetAttributes 方法:设置指定路径上文件的指定的 System.IO.FileAttributes。SetCreationTime 方法:设置创建该文件的日期和时间。SetLastAccessTime 方法:设置上次访问指定文件的日期和时间。SetLastWriteTime 方法:设置上次写入指定文件的日期和时间。实例 File 对象的应用 下面通过具体实例讲解一下 File 对象的应用。1)单击菜单栏中的“文件/新建/项目”(快捷键:Ctrl+Shift+N),打开“新建项目”对话框,项目类型选择“Visual C#”,模板选择“Windows 窗体应用程序”项.,名称为

24、“Ex08_3”。2)设置好各参数后,单击“确定”按钮,就可以创建 Windows 窗体应用程序,然后设置“Text”属性为“File 对象的应用”,如图 8-17 所示。峰杰工作室 13 图 8-17 设置窗体属性 3)添加框架控件。单击工具箱中的控件,在窗体中单击添加 2 个该控件,并设置他们的“Text”属性为“源文件名称与路径”和“目标文件名称与路径”,如图 8-18 所示。图 8-18 添加框架控件 4)添加文本框控件。单击工具箱中的控件,在窗体中添加 2 个该控件,调整其大小及位置后效果如图 8-19 所示。图 8-19 添加文本框控 5)最后在窗体中添加 4 个按钮,设置他们的“

25、Text”属性分别为“移动文件”、“复制文件”、“删除文件”和“退出程序”,如图 8-20 所示。0 0 第 8 章 文件输入输出编程 14 图 8-20 添加按钮 6)添加代码。双击窗体,进入代码视图,首先导入 System.IO 命名空间,从而可以调用 File 对象,具体代码如下:7)双击“移动文件”按钮,添加该按钮的单击事件代码,具体如下:8)双击“复制文件”按钮,添加该按钮的单击事件代码,具体如下:9)双击“删除文件”按钮,添加该按钮的单击事件代码,具体如下:峰杰工作室 15 10)双击“退出程序”按钮,添加该按钮的单击事件代码,具体如下:11)运行程序。单击菜单栏中的“调试/启动调

26、试”命令(快捷键:F5)或单击工具箱中的按钮,运行程序,输入源文件和目标文件文件和路径,然后单击“移动文件”按钮,如果源文件不存在,则会弹出提示对话框,如图 8-21 所示。图 8-21 移动文件不存在对话框 12)如果移动文件存在,单击“移动文件”按钮,就可以成功移动文件,并弹出相应提示对话框,如图 8-22 所示。图 8-22 成功移动文件 13)输入正确的源文件和目标文件文件和路径,单击“复制文件”按钮,就可以成功复制文件,并弹出相应提示对话框,如图 8-23 所示。0 0 第 8 章 文件输入输出编程 16 图 8-23 成功复制文件 14)输入要删除的源文件名称和路径,然后单击“删除

27、文件”按钮,就可以成功删除文件,并弹出相应提示对话框,如图 8-24 所示。图 8-24 成功删除文件 15)单击“退出程序”按钮,则就可以退出本程序。8.3.2 FileInfo 对象 FileInfo 对象继承于 FileSystemInfo 对象,该对象的功能与 File 对象相似,使用该对象的实例方法可以创建、复制、删除、移动和打开文件。该对象常用属性和方法意义如下:Directory 属性:获取父目录的实例。DirectoryName 属性:获取表示目录的完整路径的字符串。Exists 属性:获取指示文件是否存在的值。IsReadOnly 属性:获取或设置确定当前文件是否为只读的值。

28、Length 属性:获取当前文件的大小(字节)。Name 属性:获取文件名。CreationTime 属性:用来获取文件的创建时间 FullName 属性:用来获取文件的全名,包括文件路径。LastWriteTime 属性:用来获取最后一次写目录的时间。LastAccessTime 属性:用来获取最后一次访问的时间。Extension 属性:用来获取文件的扩展名。Attributes 属性:用来设置文件的属性,该属性有 4 个属性值,具体意义如下:(1)、FileAttributes.ReadOnly:表示文件为只读文件。(2)、FileAttributes.Hidden:表示文件为隐藏文件。

29、(3)、FileAttributes.System:表示文件为系统文件。(4)、FileAttributes.Archive:表示文件为存档文件。峰杰工作室 17 Create 方法:创建文件。CreateText 方法:创建写入新文本文件的 System.IO.StreamWriter。Open 方法:用读、写或读/写访问权限和指定的共享选项在指定的模式中打开文件。OpenRead 方法:创建只读 System.IO.FileStream。OpenText 方法:创建使用 UTF8 编码、从现有文本文件中进行读取的 System.IO.StreamReader。OpenWrite 方法:创建

30、只写 System.IO.FileStream。AppendText 方法:创建一个 System.IO.StreamWriter,它向 System.IO.FileInfo 的此实例表示的文件追加文本。CopyTo 方法:将现有文件复制到新文件,允许覆盖现有文件。Delete 方法:永久删除文件。Decrypt 方法:解密由当前帐户加密的文件。Encrypt 方法:将某个文件加密,使得只有加密该文件的帐户才能将其解密。GetAccessControl 方法:获取 System.Security.AccessControl.FileSecurity 对象,该对象封装当前 System.IO.F

31、ileInfo 对象所描述的文件的访问控制列表(ACL)项。MoveTo 方法:将指定文件移到新位置,并提供指定新文件名的选项。Replace 方法:使用当前 System.IO.FileInfo 对象所描述的文件替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。还指定是否忽略合并错误。实例 FileInfo 对象的应用 下面通过具体实例讲解一下 FileInfo 对象的应用。1)单击菜单栏中的“文件/新建/项目”(快捷键:Ctrl+Shift+N),打开“新建项目”对话框,项目类型选择“Visual C#”,模板选择“Windows 窗体应用程序”项.,名称为“Ex08_4

32、”。2)设置好各参数后,单击“确定”按钮,就可以创建 Windows 窗体应用程序,然后设置“Text”属性为“FileInfo 对象的应用”,如图 8-25 所示。图 8-25 设置窗体属性 3)添加框架控件。单击工具箱中的控件,在窗体中单击添加该控件,并设置其“Text”属性为“要查看属性的文件的路径和名称”,如图 8-26 所示。0 0 第 8 章 文件输入输出编程 18 图 8-26 设置窗体属性 4)添加文本框控件。单击工具箱中的控件,在窗体中添加该控件,调整其大小及位置后效果如图 8-27 所示。图 8-27 添加文本框控件 5)添加打开对话框公用控件。单击工具箱中的控件,然后按下

33、鼠标左键在窗体上绘制,就可以添加到应用程序中。6)最后在窗体中添加 3 个按钮,设置他们的“Text”属性分别为“打开文件”、“文件属性”和“退出程序”,如图 8-28 所示。图 8-28 添加按钮 7)添加 Windows 窗体。单击菜单栏中的“项目/添加 Windows 窗体”命令,弹出“添加新项”对话框,选择“Windows 窗体”项,如图 8-29 所示。峰杰工作室 19 图 8-29 添加新项对话框 8)单击“添加”按钮,就把该窗体添加到应用程序中,然后设置其“Text”属性为“文件的属性”,如图 8-30 所示。图 8-30 设置 Form2 窗体属性 9)添加选项卡控件。单击工具

34、箱中的控件,按下鼠标左键在窗体中拖动,即可该加该控件,调整其大小及位置后,如图 8-31 所示。图 8-31 添加选项卡控件 10)选择选项卡控件,单击“TabPage”属性后的按钮,弹出“TabPage 集合编辑器”对话框,选择“TabPage2”项,单击“移除”按钮,删除该选项卡,然后再设置“TabPage1”的“Text”属性为“常规”,如图 8-32 所示。0 0 第 8 章 文件输入输出编程 20 图 8-32 TabPage 集合编辑器对话框 11)设置好各参数后,单击“确定”按钮,然后添加 14 个标签和 1 个文本框,设置他们的属性并调整他们的大小和位置后效果如图 8-33 所

35、示。图 8-33 添加 14 个标签和 1 个文本框 12)添加复选框控件。单击工具箱中的控件,在窗体中添加 3 个复选框,设置他们的“Text”属性分别为“只读(&R)”、“隐藏(&H)”和“存档(&I)”,如图 8-34 所示。图 8-34 添加复选框控件 13)最后在窗体中添加 2 个按钮,设置他们的“Text”属性分别为“确定”和“关峰杰工作室 21 闭”,如图 8-35 所示。图 8-35 添加按钮 14)添加代码。双击 Form1 窗体,进入代码视图。首先定义公用变量,用来保存打开的文件名,具体代码如下:15)双击“打开文件”按钮,添加该按钮的单击事件代码,具体如下:16)双击“文

36、件属性”按钮,添加该按钮的单击事件代码,具体如下:17)双击“退出程序”按钮,添加该按钮的单击事件代码,具体如下:0 0 第 8 章 文件输入输出编程 22 18)这样 Form1 窗体的代码就添加完毕。19)双击 Form2 窗体,进入代码视图。首先导入 System.IO 命名空间,从而可以调用FileInfo 对象,具体代码如下:20)首先定义公用变量,用来存储 Form1 窗体中打开的文件名,具体代码如下:21)双击 Form2 窗体,添加该窗体的加载事件代码,具体如下:峰杰工作室 23 22)双击“确定”按钮,添加该按钮的单击事件代码,具体如下:23)双击“关闭”按钮,添加该按钮的单

37、击事件代码,具体如下:0 0 第 8 章 文件输入输出编程 24 24)运行程序。单击菜单栏中的“调试/启动调试”命令(快捷键:F5)或单击工具箱中的按钮,运行程序,单击“打开文件”按钮,弹出“打开”对话框,如图 8-36所示。图 8-36 打开对话框 25)选择要打开的文件后,单击“打开”按钮,这时效果如图 8-37 所示。图 8-37 选择要查看的文件 26)单击“文件属性”按钮,就可以看到该文件的文件名、位置、大小、创建时间、修改时间、访问时间,并可以看到该文件是只读或存档文件,效果如图 8-38 所示。图 8-38 查看文件属性 27)如果要修改文件的属性,只须单击相应的复选框,然后单

38、击“确定”按钮即可。28)单击“关闭”按钮,可以隐藏“文件属性”窗体。单击“退出程序”按钮,可以峰杰工作室 25 退出本程序。8.4 目录管理对象 在.NET 框架中,利用 Directory 对象和 DirectoryInfo 对象来管理目录,即文件夹,这两个对象功能类似,区别是 Directory 对象是一个静态对象,不能实例化,可以使用该对象的静态方法来管理文件夹。而 DirectoryInfo 对象则需要实例化,然后再可以使用DirectoryInfo 对象的实例方法来管理文件夹。8.4.1 Directory 对象 Directory 对象封装了目录的基本操作,即文件夹的创建、复制、

39、删除、移动,还可以列举文件夹和子文件夹中的内容。该对象中的所有方法都是静态方法,所以可以直接通过对象名来调用它们而不用创建对象实例。该对象常用方法意义如下:CreateDirectory 方法:创建指定路径中的所有目录,并应用指定的 Windows 安全性。Delete 方法:删除指定的目录并(如果指示)删除该目录中的任何子目录。Exists 方法:确定给定路径是否引用磁盘上的现有目录。GetAccessControl 方法:获取一个 Security.AccessControl.DirectorySecurity 对象,它封装指定目录的指定类型的访问控制列表(ACL)项。GetCreatio

40、nTime 方法:获取目录的创建日期和时间。GetCurrentDirectory 方法:获取应用程序的当前工作目录。GetDirectories 方法:获取当前目录中与指定搜索模式匹配并使用某个值确定是否在子目录中搜索的目录的数组。GetDirectoryRoot 方法:返回指定路径的卷信息、根信息或两者同时返回。GetFiles 方法:返回指定目录中文件的名称,该目录与指定搜索模式匹配并使用某个值确定是否在子目录中搜索。GetFileSystemEntries 方法:返回与指定搜索条件匹配的文件系统项的数组。GetLastAccessTime 方法:返回上次访问指定文件或目录的日期和时间。

41、GetLastWriteTime 方法:返回上次写入指定文件或目录的日期和时间。GetLogicalDrives 方法:检索此计算机上格式为“:”的逻辑驱动器的名称。GetParent 方法:检索指定路径的父目录,包括绝对路径和相对路径。Move 方法:将文件或目录及其内容移到新位置。SetAccessControl 方法:将 System.Security.AccessControl.DirectorySecurity 对象描述的访问控制列表(ACL)项应用于指定的目录。SetCreationTime 方法:为指定的文件或目录设置创建日期和时间。SetCurrentDirectory 方法:

42、将应用程序的当前工作目录设置为指定的目录。SetLastAccessTime 方法:设置上次访问指定文件或目录的日期和时间。0 0 第 8 章 文件输入输出编程 26 SetLastWriteTime 方法:设置上次写入目录的日期和时间。实例 Directory 对象的应用 下面通过具体实例讲解一下 Directory 对象的应用。1)单击菜单栏中的“文件/新建/项目”(快捷键:Ctrl+Shift+N),打开“新建项目”对话框,项目类型选择“Visual C#”,模板选择“Windows 窗体应用程序”项.,名称为“Ex08_5”。2)设置好各参数后,单击“确定”按钮,就可以创建 Windo

43、ws 窗体应用程序,然后设置“Text”属性为“Directory 对象的应用”,如图 8-39 所示。图 8-39 设置窗体属性 3)添加框架控件。单击工具箱中的控件,在窗体中单击添加 3 个该控件,并设置他们的“Text”属性为“请输入文件夹名称和路径”、“控件按钮”和“显示选择文件夹中的文件”,如图 8-40 所示。图 8-40 添加框架控件 4)添加文本框控件。单击工具箱中的控件,在窗体中添加该控件,调整其大小及位置后效果如图 8-41 所示。峰杰工作室 27 图 8-41 添加文本框控件 5)在窗体中添加 5 个按钮,属性设置后并调整其大小及位置后效果如图 8-42 所示。图 8-4

44、2 添加按钮 6)添加文件夹浏览对话框控件。单击工具箱中的控件,然后按下鼠标左键在窗体上绘制,就可以添加到应用程序中。7)最后在窗体中添加 1 个文本框控件,设置其“Multiline”属性为“True”,“ScrollBars”属性为“Vertical”,调整其大小及位置后效果如图 8-43 所示。图 8-43 添加 1 个文本框控件 8)添加代码。双击窗体,进入代码视图,首先导入 System.IO 命名空间,从而可以调用Directory 对象,具体代码如下:9)双击“创建文件夹”按钮,添加该按钮的单击事件代码,具体如下:0 0 第 8 章 文件输入输出编程 28 10)双击“删除文件夹

45、”按钮,添加该按钮的单击事件代码,具体如下:峰杰工作室 29 11)双击“选择文件夹”按钮,添加该按钮的单击事件代码,具体如下:12)双击“显示文件夹中文件”按钮,添加该按钮的单击事件代码,具体如下:13)双击“退出程序”按钮,添加该按钮的单击事件代码,具体如下:14)运行程序。单击菜单栏中的“调试/启动调试”命令(快捷键:F5)或单击工具箱中的按钮,运行程序,如果不输入文件夹名及其路径,单击“创建文件夹”按钮,0 0 第 8 章 文件输入输出编程 30 就会弹出相应的提示对话框,如图 8-44 所示。图 8-44 文件夹名及路径为空提示对话框 15)如果输入正确的文件夹名及路径,单击“创建文

46、件夹”按钮,就可以成功创建文件夹,并弹出相应的提示对话框,如图 8-45 所示。图 8-45 成功创建文件夹提示对话框 16)在文本框中输入要删除的文件夹位置及名称,单击“删除文件夹”按钮,如果该文件夹存在,则就可以成功删除该文件夹,如图 8-46 所示。图 8-46 成功删除文件夹及提示对话框 17)如果要删除的文件夹不存在,则也会弹出相应的提示对话框,如图 8-47 所示。图 8-47 删除的文件夹不存在提示对话框 18)单击“选择文件夹”按钮,弹出“浏览文件夹”对话框,选择要查看的文件夹,效果峰杰工作室 31 如图 8-48 所示.。图 8-48 浏览文件夹对话框 19)选择要查看的文件

47、夹后,单击“确定”按钮,该文件夹位置及名称就会在文本框中显示,再单击“显示文件夹中文件”按钮,就可以看到该文件夹中所有文件信息,如图8-49 所示。图 8-49 显示文件夹中所有文件信息 20)单击“退出程序”按钮,就可以关闭程序。8.4.2 DirectoryInfo 对象 DirectoryInfo 对象继承于 FileSystemInfo 对象,该对象的功能与 Directory 对象类似,使用该对象的实例方法可以创建、转移、获取目录和子目录信息。该对象常用属性及方法意义如下:Name 属性:获取 DirectoryInfo 对象的实例名称。Parent 属性:获取指定子目录的父目录。R

48、oot 属性:获取路径的根部分。Exists 属性:获取指示目录是否存在的值。如果目录存在,则为 true;否则为 false。CreationTime 属性:获取或设置目录的创建时间。FullName 属性:获取目录的完整路径。LastAccessTime 属性:获取或设置最后一次访问时间。LastWriteTime 属性:获取或设置最后一次写入目录的时间。0 0 第 8 章 文件输入输出编程 32 Create 方法:使用 System.Security.AccessControl.DirectorySecurity 对象创建目录。CreateSubdirectory 方法:使用指定的安全

49、性在指定的路径上创建一个或多个子目录。DirectoryInfo 方法:在指定的路径中初始化 DirectoryInfo 对象的新实例。GetDirectories 方法:返回当前目录的子目录。GetFiles 方法:返回当前目录的文件列表。GetFileSystemInfos 方法:返回表示某个目录中所有文件和子目录的强类型 System.IO.FileSystemInfo 项的数组。MoveTo 方法:将 DirectoryInfo 对象实例及其内容移动到新路径。Delete 方法:删除 DirectoryInfo 对象实例,还可以指定是否要删除子目录和文件。实例 DirectoryInf

50、o 对象的应用 下面通过具体实例讲解一下 DirectoryInfo 对象的应用。1)单击菜单栏中的“文件/新建/项目”(快捷键:Ctrl+Shift+N),打开“新建项目”对话框,项目类型选择“Visual C#”,模板选择“Windows 窗体应用程序”项.,名称为“Ex08_6”。2)设置好各参数后,单击“确定”按钮,就可以创建 Windows 窗体应用程序,然后设置“Text”属性为“DirectoryInfo 对象的应用”,如图 8-50 所示。图 8-50 设置窗体属性 3)添加框架控件。单击工具箱中的控件,在窗体中单击添加 3 个该控件,并设置他们的“Text”属性分别为“要查找

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁