您好,欢迎访问三七文档
C#的文件操作内容提要:文件的概念File类文件的读和写目的要求:理解文件的概念掌握File类的常用方法的用法掌握文件的读和写重点难点:File类、StreamReader类和StreamWriter类在编写应用程序时,常常需要以文件的形式保存和读取一些信息。这时就会不可避免地要进行各种文件操作,还经常会需要设计自己的文件格式。因此,有效地实现文件操作,是一个良好的应用程序所必须具备的内容。目录及文件管理是操作系统的一个重要组成部分,包括目录的创建、移动、删除和文件的创建、移动、复制、删除以及对文件的读写等操作。一个完整的应用程序,常常会涉及对系统和用户的信息进行存储、读取和修改等处理。因此,如何有效地实现目录和文件操作也是必须掌握的一种技术。在C#语言中,可以方便地对文件进行存储和读写等。.NET框架提供的Directory类和DirectoryInfo类用于对磁盘和目录进行操作管理;File类和FileInfo类用于对文件进行创建、复制、移动、删除和打开等操作。而StreamReader和StreamWriter等类则可以用于对文件以“流”的方式进行读写操作。在System.IO命名空间中,.NET框架提供了Directory类和DirectoryInfo类。这两个类均可用于对磁盘和目录进行操作管理,如复制、移动、重命名、创建和删除目录,获取和设置与目录的创建、访问及写入操作相关的时间信息。DirectoryInfo类与Directory类的不同点在于DirectoryInfo类必须被实例化后才能使用,而Directory类则只提供了静态的方法。实际编程中,如果多次使用某个对象,一般用DirectoryInfo类;如果仅执行某一个操作,则使用Directory类提供的静态方法效率更高一些。DirectoryInfo类的构造函数形式如下:publicDirectoryInfo(stringpath)参数path表示目录所在的路径。表6-1和表6-2分别列出了DirectoryInfo类的主要属性及Directory类提供的静态方法。表6-1DirectoryInfo类的主要属性属性名含义Attributes获取或设置当前FileSystemInfo的FileAttributes。例如:DirectoryInfod=newDirectoryInfo(@”c:\MyDir”);d.Attributes=FileAttributes.ReadOnly;Exists获取指示目录是否存在的布尔值FullName获取当前路径的完整目录名Parent获取指定子目录的父目录Root获取根目录CreationTime获取或设置当前目录创建时间LastAccessTime获取或设置上一次访问当前目录的时间LastWriteTime获取或设置上一次写入当前目录的时间表6-2Directory类提供的静态方法方法说明CreateDirectory创建指定路径中的所有目录Delete删除指定的目录Exists确定给定路径是否引用磁盘上的现有目录GetCreationTime获取目录的创建日期和时间GetCurrentDirectory获取应用程序的当前工作目录GetDirectories获取指定目录中子目录的名称GetFiles返回指定目录中文件的名称GetFileSystemEntries返回指定目录中所有文件和子目录的名称GetLastAccessTime返回上次访问指定文件或目录的日期和时间GetLastWriteTime返回上次写入指定文件或目录的日期和时间GetParent检索指定路径的父目录,包括绝对路径和相对路径Move将文件或目录及其内容移到新位置SetCurrentDirectory将应用程序的当前工作目录设置为指定的目录SetLastAccessTime设置上次访问指定文件或目录的日期和时间SetLastWriteTime设置上次写入目录的日期和时间目录的创建、删除与移动1、目录的创建Directory类的CreateDirectory方法用于创建指定路径中的所有目录。方法原型为publicstaticDirectoryInfoCreateDirectory(stringpath)其中参数path为要创建的目录路径。如果指定的目录不存在,程序中调用该方法后,系统会按path指定的路径创建所有目录和子目录。例如,在C盘根目录下创建一个名为test的目录代码为Directory.CreateDirectory(“c:\\test”);使用CreateDirectory方法创建多级子目录时,也可以直接指定路径,例如,同时创建test目录和其下的t1一级子目录和t2二级子目录的代码为:Directory.CreateDirectory(“c:\\test\t1\t2”);2、目录的删除Directory类的Delete方法用于删除指定的目录,该方法有下列两种重载的形式。(1)publicstaticvoidDelete(stringpath)参数path为要移除的空目录的名称。path参数不区分大小写,可以是相对于当前工作目录的相对路径,也可以是绝对路径。注意:此目录必须为空才可以删除,否则将会引发异常。(2)publicstaticvoidDelete(stringpath,boolrecursive)其中,path为要移除的目录的名称,不区分大小写;recursive是一个布尔值,若要移除path中的目录、子目录和文件,则为true;否则为false。例如,删除C盘根目录下的test目录,且test目录为空的代码如下:Directory.Delete(“c:\\test”);删除C盘根目录下的test目录,且移除test目录中的子目录和文件,代码如下:Directory.Delete(“c:\\test”,true);[例6-1]创建并删除指定的目录。usingSystem;usingSystem.IO;classTest{publicstaticvoidMain(){//获取当前目录信息//stringpath1=Directory.GetCurrentDirectory();stringpath1=“D:”;stringpath2=path1+\\test;try{if(Directory.Exists(path2)){Console.WriteLine(目录已存在);}//创建目录DirectoryInfodi=Directory.CreateDirectory(path2);Console.WriteLine(成功创建目录:{0},{1},path2,Directory.GetCreationTime(path2));//删除目录di.Delete();Console.WriteLine(目录已删除);}catch(Exceptione){Console.WriteLine(程序异常:{0},e.ToString());}}}3、目录的移动Directory类的Move方法能够重命名或移动目录。方法原型为publicstaticvoidMove(stringsourceDirName,stringdestDirName)其中,sourceDirName为要移动的文件或目录的路径;destDirName为指向sourceDirName的新位置的目标路径。注意:destDirName参数指定的目标路径应为新目录。如将“c:\mydir”移动到“c:\public”,并且“c:\public”已存在,则此方法会引发IOException异常。VS2005提供了FolderBrowserDialog控件,用于显示用户选择文件夹的对话框。FolderBrowserDialog类属于System.Windows.Forms命名空间,无法继承该类。调用FolderBrowserDialog类的ShowDialog方法,可以打开对话框,提示用户浏览、创建并最终选择一个文件夹。只能选择文件系统中的文件夹,不能选择虚拟文件夹。只允许用户选择文件夹而非文件。文件夹的浏览通过树控件完成。如果用户在对话框中单击[确定]按钮,则对话框返回结果为DialogResult.OK,否则为DialogResult.Cancel。表6-3列出了FolderBrowserDialog控件的主要属性。表6-4列出了FolderBrowserDialog控件的主要方法。表6-3FolderBrowserDialog控件的主要属性属性名含义Description获取或设置对话框中在树视图控件上显示的说明文本RootFolder获取或设置从其开始浏览的根文件夹SelectedPath获取或设置用户选定的路径Tag获取或设置一个对象,该对象包含控件的数据(从CommonDialog继承)CanRaiseEvent获取一个指示组件是否可以引发事件的值(从Component继承)表6-4FolderBrowserDialog控件的主要方法方法说明Dispose释放由Component占用的资源(从Component继承)Equals确定两个Object实例是否相等(从Object继承)Reset将属性重置为其默认值ShowDialog运行通用对话框(从CommonDialog继承)GetService返回一个对象,该对象表示由Component或它的Container提供的服务(从Component继承)通常在创建新的FolderBrowserDialog后,将RootFolder设置为开始浏览的位置。或者,可将SelectedPath设置为最初选定的RootFolder子文件夹的绝对路径。也可以选择设置[Description]属性为用户提供附加说明。最后,调用ShowDialog方法将对话框显示给用户。如果该对话框关闭并且ShowDialog显示的对话框为DialogResult.OK,SelectedPath则是一个包含选定文件夹路径的字符串。FolderBrowserDialog是模式对话框,因此,在对话框被显示时,不能对对话框以外的对象进行任何操作,即阻止应用程序其他部分的运行,直到用户选定了文件夹。[例6-3]单击Windows窗体按钮,打开FolderBrowserDialog对话框。(1)启动VS2005,创建一个名为FolderBrowserDialog的Windows应用程序项目。(2)在Form1.cs的[设计]窗口中,将Form1的[Text]属性值改为“FolderBrowserDialog示例”。打开工具箱,如图6-1所示,在“对话框”选项卡中选择FolderBrowserDialog控件,并将其拖入到Form1窗体中。(3)在Form1窗体中,使用工具箱,展开“所有Windows窗体”选项卡,依次添加标签控件label1、文本框控件textBox1和按钮控件button1,然后修改对应的[Text]属性,界面效果如图6-2所示。图6-1工具箱图6-2Form1设计窗体(4)双击[打开文件夹]按钮,添加对应的Click事件代码:privatevoidbutton1_Click(objectsender,EventArgse){DialogResultresult=folderBrowserDialog1.ShowDialog();if(result==DialogResult.OK){textBox1.Text=folderBrowserDialog1.SelectedPath;}else{textBox1.Text=;}}(5)按F5键编译并运行,单击[打开文件夹]按钮,弹出[浏览文件夹]对话框,如图6-3所示,选择文件夹,单击[确定]按钮,已选择的文件夹就会显示在文本框textBox1中,运行。1文件概念文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。文件是指在各种存储介质上(如硬盘、可移
本文标题:C#的文件操作
链接地址:https://www.777doc.com/doc-5015674 .html