1、1 1第第7 7章章 目录与文件管理目录与文件管理7.1 7.1 系统环境相关类系统环境相关类7.2 7.2 目录管理目录管理7.3 7.3 文件管理文件管理7.4 7.4 文件的读写文件的读写7.5 7.5 FileSystemWatcherFileSystemWatcher组件组件2 27.1 7.1 系统环境相关类系统环境相关类.NET.NET框架下,有与系统环境相关类。框架下,有与系统环境相关类。1.1.EnvironmentEnvironment类类 该类除了提供当前环境和操作系统平台相关该类除了提供当前环境和操作系统平台相关的信息外,还提供了获取本地逻辑驱动器和的信息外,还提供了获
2、取本地逻辑驱动器和特殊文件夹的方法。特殊文件夹的方法。2.2.DriveInfoDriveInfo类类 提供了本地驱动器相关的详细信息。提供了本地驱动器相关的详细信息。3 37.1.1 7.1.1 EnvironmentEnvironment类类1.常用的属性和方法常用的属性和方法u CurrentDirectory属性:当前工作目属性:当前工作目录的完全限定路径的完全限定路径u OSVersion属性:属性:获取包含当前平台取包含当前平台标识符和版本号的符和版本号的 OS对象。象。u NewLine属性:属性:获取取为此此环境定境定义的的换行字符串行字符串u Version属性:公共属性:公
3、共语言运行言运行时的版本号。的版本号。u GetLogicalDrives方法:返回包含当前方法:返回包含当前计算机中的算机中的逻辑驱动器名称的字符串数器名称的字符串数组。u GetFolderPath方法:方法:获取由指定枚取由指定枚举标识的系的系统特殊文件特殊文件夹的路径。的路径。4 4Console.WriteLine(CurrentDirectory:0,Environment.CurrentDirectory);Console.WriteLine(MachineName:0,Environment.MachineName);Console.WriteLine(NewLine:0 fi
4、rst line0 second line0 third line,Environment.NewLine);Console.WriteLine(OSVersion:0,Environment.OSVersion.ToString();5 57.1.2 DriveInfo7.1.2 DriveInfo类类使用使用DriveInfo可以确定当前可用的可以确定当前可用的驱动器以及器以及这些些驱动器的器的类型,型,还可以通可以通过查询来确定来确定驱动器的容量和剩余空器的容量和剩余空间。常常见属性和方法:属性和方法:AvailableFreeSpace 指示指示驱动器上的可用空器上的可用空闲空空间量。
5、量。DriveFormat 获取文件系取文件系统的名称,例如的名称,例如 NTFS 或或 FAT32。DriveType 获取取驱动器器类型。型。IsReady 获取一个指示取一个指示驱动器是否已准器是否已准备好的好的值。Name 获取取驱动器的名称。器的名称。RootDirectory 获取取驱动器的根目器的根目录。TotalFreeSpace 获取取驱动器上的可用空器上的可用空闲空空间总量。量。TotalSize 获取取驱动器上存器上存储空空间的的总大小。大小。VolumeLabel 获取或取或设置置驱动器的卷器的卷标。GetDrives方法方法检索索计算机上的所有算机上的所有逻辑驱动器的
6、器的驱动器名称。器名称。ToString方法方法将将驱动器名称作器名称作为字符串返回。字符串返回。6 67.1.2 DriveInfo7.1.2 DriveInfo类类DriveInfo allDrives=DriveInfo.GetDrives();foreach(DriveInfo d in allDrives)Console.WriteLine(Drive 0,d.Name);Console.WriteLine(文件文件类型型:0,d.DriveType);if(d.IsReady=true)Console.WriteLine(卷卷标:0,d.VolumeLabel);Console.W
7、riteLine(文件系文件系统:0,d.DriveFormat);Console.WriteLine(当前用当前用户可用空可用空间:0 bytes,d.AvailableFreeSpace);Console.WriteLine(总可用空可用空间:0 bytes,d.TotalFreeSpace);Console.WriteLine(驱动器器总容量容量:0 bytes,d.TotalSize);7 77.2 7.2 目录管理目录管理在在System.IO命名空命名空间中,中,.NET框架提供了框架提供了3种种对目目录进行管理的行管理的类,分,分别是是Directory类、DirectoryIn
8、fo类和和Path类。1.Directory类和和DirectoryInfo类区区别:Directory类(只提供(只提供静静态方法方法)DirectoryInfo类(需要(需要实例化例化才能使用)才能使用)(1)Directory类提供的静提供的静态方法方法CreateDirectory(String):在指定路径:在指定路径创建所有目建所有目录和子目和子目录。Delete(String)从指定路径从指定路径删除空目除空目录。Move:将文件或目:将文件或目录及其内容移到新位置。及其内容移到新位置。Exists:确定:确定给定路径是否引用磁定路径是否引用磁盘上的上的现有目有目录。GetCur
9、rentDirectory:获取取应用程序的当前工作目用程序的当前工作目录。GetLogicalDrives:检索此索此计算机上格式算机上格式为“:”的的逻辑驱动器的名称。器的名称。8 87.2 7.2 目录管理目录管理(2)DirectoryInfo类DirectoryInfo类的的构造函数构造函数形式如下:形式如下:public DirectoryInfo(string path);参数参数path表示目表示目录所在的路径。所在的路径。例如:例如:DirectoryInfo dirInfo=new DirectoryInfo(e:temp);注意注意:(:(1)path是合法的路径。是合法
10、的路径。(2)用用System.Environment.SpecialFolder下的枚下的枚举可以可以获取特殊文件取特殊文件夹路径:路径:例如例如ApplicationData目目录,它用作当前漫游用,它用作当前漫游用户的的应用程序特定数据的公共用程序特定数据的公共储存存库CommonApplicationData目目录,它用作所有用,它用作所有用户使用的使用的应用程序特定数据的公共用程序特定数据的公共储存存库。CommonProgramFiles用于用于应用程序用程序间共享的共享的组件的目件的目录。MyComputer“我的我的电脑”文件文件夹。ProgramFiles“Program f
11、iles”目目录。9 97.2 7.2 目录管理目录管理DirectoryInfo类的主要属性和方法的主要属性和方法Attributes 设置当前置当前 FileSystemInfo 的的 FileAttributesCreationTime 设置当前置当前 FileSystemInfo 对象的象的创建建时间Exists获取指示目取指示目录是否存在的是否存在的值FullName 获取目取目录或文件的完整目或文件的完整目录Parent获取指定子目取指定子目录的父目的父目录Name获取此取此 DirectoryInfo 实例的名称例的名称1010例如,在例如,在D盘下下创建名建名为AA的文件的文件
12、夹,首先要将,首先要将DirectoryInfo类实例化,然后判断是否存在同名的文件例化,然后判断是否存在同名的文件夹,如果不存在,如果不存在,则使使用用Create方法方法创建目建目录。代。代码如下所示:如下所示:string path=D:AA;DirectoryInfo di=new DirectoryInfo(path);if(!di.Exists)di.Create();else Messagebox.Show(此文件此文件夹已已经存在!存在!);11117.2.2 Path7.2.2 Path类类1.Path类:对包含文件或目包含文件或目录路径信息的路径信息的String实例例执行
13、操作。行操作。2.常用方法:常用方法:GetDirectoryName方方法:返回指定路径字符串的目法:返回指定路径字符串的目录信息。信息。GetExtension方方法:返回指定的路径字符串的法:返回指定的路径字符串的扩展名。展名。GetFileName方方法:返回指定路径字符串的文件名和法:返回指定路径字符串的文件名和扩展名。展名。GetFileNameWithoutExtension方方法:返回不具有法:返回不具有扩展名的指定路径字符串的文展名的指定路径字符串的文件名。件名。GetFullPath方方法:返回指定路径字符串的法:返回指定路径字符串的绝对路径路径。在接受路径的成在接受路径的
14、成员中,路径可以是指文件或中,路径可以是指文件或仅是目是目录。指定路径也可以是相指定路径也可以是相对路径或者服路径或者服务器和共享名称的器和共享名称的统一命名一命名约定定(UNC)路径。路径。例如,以下都是可接受的路径例如,以下都是可接受的路径:C#中的中的“c:MyDirMyFile.txt”C#中的中的“c:MyDir”C#中的中的“MyDirMySubdir”C#中中的的MyServerMyShare另另外,在外,在C#中中“/”“”是是特殊字符,要表示它的特殊字符,要表示它的话需要使需要使用用“/”、“”。由于由于这种写法不方便,种写法不方便,C#语言提供了言提供了对其其简化。只要在字
15、符串前加化。只要在字符串前加上上即可直接使用即可直接使用“/”“”。1212 string path1=c:tempMyTest.txt;string path2=c:tempMyTest;string path3=temp;if(Path.HasExtension(path1)Console.WriteLine(0 has an extension.,path1);if(!Path.HasExtension(path2)Console.WriteLine(0 has no extension.,path2);if(!Path.IsPathRooted(path3)Console.WriteL
16、ine(The string 0 contains no root information.,path3);Console.WriteLine(The full path of 0 is 1.,path3,Path.GetFullPath(path3);Console.WriteLine(0 is the location for temporary files.,Path.GetTempPath();Console.WriteLine(0 is a file available for use.,Path.GetTempFileName();13137.2.3 7.2.3 目录的创建、删除和
17、移动目录的创建、删除和移动1.1.创建目录创建目录DirectoryDirectory类的类的CreateDirectoryCreateDirectory方法用于创建指定路径中的所方法用于创建指定路径中的所有目录。有目录。public static DirectoryInfo CreateDirectory(string public static DirectoryInfo CreateDirectory(string pathpath)其中参数其中参数pathpath为要创建的目录路径。为要创建的目录路径。举例:举例:Directory.CreateDirectory(c:test);Di
18、rectory.CreateDirectory(c:test);Directory.CreateDirectory(Directory.CreateDirectory(“c:testt1t2c:testt1t2”););/创建了创建了testtest、t1t1、t2t2三个目录三个目录14147.2.3 7.2.3 目录的创建、删除和移动目录的创建、删除和移动2.2.删除目录删除目录DirectoryDirectory类的类的DeleteDelete方法用于删除指定的目录,常用的方法原型为方法用于删除指定的目录,常用的方法原型为public static void Deletepublic s
19、tatic void Delete(string path,bool recursivestring path,bool recursive)其中:其中:pathpath参数不区分大小写,可以是相对于当前工作目录的相参数不区分大小写,可以是相对于当前工作目录的相对路径,也可以是绝对路径。对路径,也可以是绝对路径。RecursiveRecursive(rkrsv,递归,递推)是一个布尔值,如果要)是一个布尔值,如果要移除移除pathpath中的目录(包括所有子目录和文件),则为中的目录(包括所有子目录和文件),则为truetrue;否则为;否则为falsefalse。15157.2.3 7.2.
20、3 目录的创建、删除和移动目录的创建、删除和移动3.3.移动目录移动目录DirectoryDirectory类的类的MoveMove方法能够重命名或移动目录。方法原型为方法能够重命名或移动目录。方法原型为public static void Move(string sourceDirName,string public static void Move(string sourceDirName,string destDirName)destDirName)其中:其中:sourceDirNamesourceDirName为要移动的文件或目录的路径;为要移动的文件或目录的路径;destDirNam
21、edestDirName为新位置的目标路径。为新位置的目标路径。注意:注意:destDirNamedestDirName参数指定的目标路径应为新目录参数指定的目标路径应为新目录。16167.2.4 FolderBrowserDialog7.2.4 FolderBrowserDialog对话框对话框FolderBrowserDialogFolderBrowserDialog对话框对话框以树形控件的以树形控件的形式将指定路径的文件夹及其子文件夹形式将指定路径的文件夹及其子文件夹显示出来,供用户浏览、创建或选择。显示出来,供用户浏览、创建或选择。FolderBrowserDialogFolderBr
22、owserDialog类也是类也是CommonDialogCommonDialog类的一个派生类。类的一个派生类。调用调用FolderBrowserDialogFolderBrowserDialog的的ShowDialogShowDialog方方法,可以打开对话框,如果用户在对话法,可以打开对话框,如果用户在对话框中单击框中单击【确定确定】按钮,则对话框返回按钮,则对话框返回结果为结果为DialogResult.OKDialogResult.OK,否则为,否则为DialogResult.CancelDialogResult.Cancel。17177.2.4 FolderBrowserDialo
23、g7.2.4 FolderBrowserDialog控件控件3.FolderBrowserDialog控件的主要属性控件的主要属性:属性名属性名含义含义DescriptionDescription获取或设置对话框中在树视图控件上显示的说明文获取或设置对话框中在树视图控件上显示的说明文本本RootFolderRootFolder获取或设置从其开始浏览的根文件夹获取或设置从其开始浏览的根文件夹SelectedPathSelectedPath获取或设置用户选定的路径获取或设置用户选定的路径1818private void button1_Click(object sender,EventArgs e
24、)FolderBrowserDialog fbd=new FolderBrowserDialog();fbd.Description=选择文件夹;fbd.RootFolder=Environment.SpecialFolder.MyDocuments;fbd.ShowNewFolderButton=true;if(fbd.ShowDialog()!=DialogResult.OK)return;string path=fbd.SelectedPath;messagebox.Show(path.ToString();19197.3 7.3 文件管理文件管理“文件文件”一般是指存一般是指存储在外部
25、介在外部介质上数据的集合上数据的集合.C#使用使用System.IO命名空命名空间中的下两个中的下两个类对文件文件进行操作行操作:(1)File类(2)FileInfo类 相同点相同点:都能完成:都能完成对文件的复制、移文件的复制、移动、重命名、重命名、创建、打建、打开、开、删除和追加到文件操作。除和追加到文件操作。不同点不同点:FileInfo类提供提供实例化后的属性、方法例化后的属性、方法File 只提供静只提供静态方法方法用法与用法与Directory和和DirectoryInfo相似。相似。20207.3.1 7.3.1 文件复制、删除与移动文件复制、删除与移动1.File类(1)判断
26、文件是否存在)判断文件是否存在调用用File类的的Exist方法可以判断是否存在指定的文件。方法可以判断是否存在指定的文件。(2)复制文件的方)复制文件的方法法Copy(sourceFileName,destFileName,bool overwrite)(2)删除文件除文件的的方方法法Delete(string path)(3)移移动文件文件的的方方法法Move(sourceFileName,destFileName)注注意意:Move方方法法不不提提供供创建建目目录的的功功能能,要要确确保保存存在在目目标文文件件目目录。21217.3.2 7.3.2 文件属性文件属性1.1.设置或获取文件
27、属性设置或获取文件属性 (1)(1)对对FileFile类:用类:用SetAttributesSetAttributes方法,方法,GetAttributesGetAttributes方法设方法设置、获取。置、获取。(2)(2)对对FileInfoFileInfo类:用类:用AttributesAttributes属性设置、获取。属性设置、获取。(3)(3)注意:注意:文件属性文件属性FileAttributesFileAttributes的每个枚举值代表目录或者文件的每个枚举值代表目录或者文件的一个属性,各个枚举值是按照的一个属性,各个枚举值是按照2 2的幂排列的,即依次为的幂排列的,即依次
28、为2 20 0,2 21 1,2 22 2,2 23 3 ,2.2.可以利用可以利用“与与”、“或或”操作设置或获取单个属性。操作设置或获取单个属性。2222 textBox1.Text=”D:吴业福PPT-C#可视化编程-点名册.xls”;FileAttributes MyAttributes=File.GetAttributes(textBox1.Text);File.SetAttributes(textBox1.Text,FileAttributes.Normal);/设置文件夹属性为正常 File.SetAttributes(textBox1.Text,FileAttributes.R
29、eadOnly);/设置成只读属性File.SetAttributes(textBox1.Text,MyAttributes|FileAttributes.System);/设置添加系统属性File.SetAttributes(textBox1.Text,MyAttributes|FileAttributes.Hidden);/设置添加隐藏属性File.SetAttributes(textBox1.Text,MyAttributes|FileAttributes.Archive);/设置添加归档属性23237.3.2 7.3.2 文件属性与设置(续)文件属性与设置(续)2.2.判断某个路径是目
30、录还是文件判断某个路径是目录还是文件下面的代码演示了如何判断某个路径是目录还是文件:下面的代码演示了如何判断某个路径是目录还是文件:path=path=”D:D:吴业福吴业福PPT-C#PPT-C#”;if(if(File.GetAttributes(path)&File.GetAttributes(path)&FileAttributes.DirectoryFileAttributes.Directory)=)=FileAttributes.Directory)FileAttributes.Directory)Console.WriteLine(Console.WriteLine(“00”是
31、目录是目录,path);,path);elseelse Console.WriteLine(Console.WriteLine(“00”是文件是文件,path);,path);File.GetAttributes(path)&FileAttributes.Directory:File.GetAttributes(path)&FileAttributes.Directory:返回返回DirectoryDirectory位的值:位的值:0 0、1 124247.3.4 OpenFileDialog7.3.4 OpenFileDialog控件和控件和SaveFileDialogSaveFileDia
32、log1.功能:用于功能:用于显示用示用户打开文件的打开文件的对话框。框。2.常用属性:常用属性:属性名属性名说明说明ShowReadOnly确定是否在对话框中显示只读复选框确定是否在对话框中显示只读复选框ReadOnlyChecked指示是否选中只读复选框指示是否选中只读复选框MultiSelect指示对话框是否允许选择多个文件指示对话框是否允许选择多个文件 FileName获取或设置一个包含在文件对话框中选定的文件名的字获取或设置一个包含在文件对话框中选定的文件名的字符串符串 Filter获取或设置当前文件名筛选器字符串获取或设置当前文件名筛选器字符串 3.3.常用方法:常用方法:Show
33、Dialog()ShowDialog()25257.3.4 OpenFileDialog7.3.4 OpenFileDialog控件和控件和SaveFileDialogSaveFileDialog1.SaveFileDialog用于用于显示保存文件示保存文件对话框,提示用框,提示用户选择文件文件的保存位置。的保存位置。2.调用用SaveFileDialog的的ShowDialog方法,将打开方法,将打开【另存另存为】对话框,如果用框,如果用户在在对话框中框中单击【保存保存】按按钮,则保存保存该文文件,并返回件,并返回DialogResult.OK,否,否则返回返回DialogResult.Ca
34、ncel。2626【例例7-17-1】利用利用FolderBrowerDialogFolderBrowerDialog、OpenFileDialogOpenFileDialog和和SaveFileDialogSaveFileDialog对话框,设计一个对话框,设计一个WindowsWindows应用程序,实现将文应用程序,实现将文件从一个目录复制到另一个目录的功能。件从一个目录复制到另一个目录的功能。对话框控件综合举例对话框控件综合举例27277.4 7.4 文件的读写文件的读写 在在System.IO命名空命名空间中,提供了多种中,提供了多种类用于用于进行数据文件和行数据文件和数据流的数据流
35、的读写操作。写操作。主要有:主要有:1.文件文件编码,提供了多种,提供了多种编码读写方式。写方式。2.文本文件的文本文件的读写。写。3.二二进制文件的制文件的读写。写。28287.4.1 7.4.1 文件的编码文件的编码1.1.文件编码文件编码常见的文件编码方式有常见的文件编码方式有ASCIIASCII编码、编码、UnicodeUnicode编码、编码、UTF8UTF8编码编码和和ANSIANSI编码。编码。2.2.在在System.TextSystem.Text命名空间中,有一个命名空间中,有一个EncodingEncoding类,用于表示类,用于表示字符编码。对文件进行操作时,常用的编码方
36、式有字符编码。对文件进行操作时,常用的编码方式有Encoding.DefaultEncoding.Default表示操作系统的当前表示操作系统的当前ANSIANSI编码,两字编码,两字节代表一个字符节代表一个字符Encoding.UnicodeEncoding.UnicodeUnicodeUnicode编码,编码,双字节字符编码双字节字符编码Encoding.UTF8Encoding.UTF8UTF8UTF8编码,可变长(编码,可变长(1-41-4字节)字节)UnicodeUnicode编码编码3.3.打开文件时指定的编码方式一定要保存文件时的编码方式一致。打开文件时指定的编码方式一定要保存文
37、件时的编码方式一致。29297.4.2 ASC7.4.2 ASC文本文件的读写文本文件的读写File类提供了非常方便的提供了非常方便的读写文本文件的方法。写文本文件的方法。1ReadAllText方法和方法和AppendAllText方法方法u ReadAllText方法打开一个文件,方法打开一个文件,读取文件的每一行,并取文件的每一行,并将其以将其以一个字符串返回,一个字符串返回,然后然后自自动关关闭文件。常用原型文件。常用原型为 public static string ReadAllText(string path,Encoding encoding)StringmyFile=File.
38、ReadAllText(”C:/Text.txt”,System.Text.Encoding.UTF32);uAppendAllText方法用于将指定的字符串追加到文件中,如果文方法用于将指定的字符串追加到文件中,如果文件不存在件不存在则自自动创建建该文件,然后文件,然后自自动关关闭文件。文件。常用原型常用原型为 public static void AppendAllText(string path,string contents,Encoding encoding)3030string path=c:tempMyTest.txt;/This text is added only once
39、to the file.if(!File.Exists(path)/Create a file to write to.string createText=Hello and Welcome+Environment.NewLine;File.WriteAllText(path,createText,Encoding.UTF8);/This text is always addedstring appendText=This is extra text+Environment.NewLine;File.AppendAllText(path,appendText,Encoding.UTF8);/O
40、pen the file to read from.string readText=File.ReadAllText(path,Encoding.UTF8);MessageBox.Show(readText);3131文文本文件的读写本文件的读写2 2、ReadAllLinesReadAllLines方法和方法和WriteAllLinesWriteAllLines方法方法uReadAllLinesReadAllLines方法打开一个文本文件,将文件的所有行都读方法打开一个文本文件,将文件的所有行都读入一个字符串数组,然后关闭该文件。入一个字符串数组,然后关闭该文件。String myTextF
41、ileReader=File.ReadAllLines(String myTextFileReader=File.ReadAllLines(”C:/Test.txtC:/Test.txt”););uWriteAllLinesWriteAllLines方法创建一个新文件,在其中写入指定的字方法创建一个新文件,在其中写入指定的字符串数组中的值,然后关闭文件。如果目标文件已存在,则符串数组中的值,然后关闭文件。如果目标文件已存在,则覆盖该文件覆盖该文件Dim createText()As String=Hello,And,WelcomeDim createText()As String=Hello,
42、And,WelcomeFile.WriteAllLines(File.WriteAllLines(”C:/Test.txtC:/Test.txt”,createText,Encoding.UTF8),createText,Encoding.UTF8)3232文文本文件的读写本文件的读写3StreamReader类和和StreamWriter类流是字流是字节序列的抽象概念序列的抽象概念。流流也是也是进行数据行数据读取操作的基本取操作的基本对象,流提供了象,流提供了连续的字的字节流存流存储空空间。流有如下几种操流有如下几种操作:作:读取:从流中取:从流中读取数据到取数据到变量中。量中。写入:把写入
43、:把变量中的数据写入到流中。量中的数据写入到流中。定位:重新定位:重新设置流的当前位置,以便随机置流的当前位置,以便随机读写。写。3333基于流基于流的文的文件的读写方法:件的读写方法:StreamReaderStreamReader类:利用流来按行读取文本文件信息的方法。类:利用流来按行读取文本文件信息的方法。如果不指定编码,如果不指定编码,StreamReaderStreamReader的默认编码为的默认编码为UTF-8UTF-8,而不是,而不是当前系统的当前系统的ANSIANSI编码。编码。StreamWriterStreamWriter类:按行写入文本信息的方法。与类:按行写入文本信息
44、的方法。与StreamReaderStreamReader类似,如果不指定编码,类似,如果不指定编码,StreamWriterStreamWriter默认使默认使用用UTF-8UTF-8编码,而不是当前系统的编码,而不是当前系统的ANSIANSI编码。编码。FileFile类的类的OpenOpen方法:先创建一个方法:先创建一个FileStreamFileStream对象,然后使用对象,然后使用FileStreamFileStream对象对文件进行读取、写入、打开和关闭操作。对象对文件进行读取、写入、打开和关闭操作。3434读字符串代字符串代码段如下:段如下:try /Create an in
45、stance of StreamReader to read from a file./The using statement also closes the StreamReader.using(StreamReader sr=new StreamReader(TestFile.txt)String line;/Read and display lines from the file until the end of /the file is reached.while(line=sr.ReadLine()!=null)Console.WriteLine(line);catch(Except
46、ion e)/Let the user know what went wrong.Console.WriteLine(The file could not be read:);Console.WriteLine(e.Message);3535写写字符串代字符串代码段如下:段如下:/Get the directories currently on the C drive.DirectoryInfo cDirs=new DirectoryInfo(c:).GetDirectories();/Write each directory name to a file.using(StreamWriter
47、 sw=new StreamWriter(CDriveDirs.txt)foreach(DirectoryInfo dir in cDirs)sw.WriteLine(dir.Name);3636filestreamfilestream的构造函数的构造函数参数参数 值值 FileModeAppend、Create、CreateNew、Open、OpenOrCreate和Truncate FileAccessRead、ReadWrite和Write FileShareInheritable、None、Read、ReadWrite和Write 注意注意,对于FileMode,如果要求的模式与文件的
48、现有状态不一致,就会抛出一个异常。如果文件不存在,Append、Open和Truncate会抛出一个异常,如果文件存在,CreateNew会抛出一个异常。Create和OpenOrCreate可以处理这两种情况,但Create会删除现有的文件,创建一个新的空文件。FileAccess 和FileShare枚举是按位标志,所以这些值可以与C#的按位OR运算符|合并使用。3737FileStream操作操作字符串代字符串代码段如下:段如下:FileStream fs=new FileStream(c:Variables.txt,FileMode.Append,FileAccess.Write,Fi
49、leShare.Write);fs.Close();StreamWriter sw=new StreamWriter(c:Variables.txt,true,Encoding.ASCII);string NextLine=This is the appended line.;sw.Write(NextLine);sw.Close();38387.4.3 7.4.3 二进制文件的读写二进制文件的读写System.IO 命名空命名空间下的下的BinaryReader和和BinaryWriter类实现二二进制制形式的形式的读写。写。BinaryReader:用特定的:用特定的编码将基元数据将基元数
50、据类型型读作二作二进制制值BinaryWriter:以二:以二进制形式将基元制形式将基元类型写入流,并支型写入流,并支持用特定的持用特定的编码写入字符串。写入字符串。39397.4.3 7.4.3 二进制文件的读写二进制文件的读写例例7-2:将随机:将随机产生的二生的二进制数据写入文件,并制数据写入文件,并验证写入写入结果是果是否正确。否正确。Random r=new Random();byte writeArray=new byte10;/用随机数填充指定字用随机数填充指定字节数数组的元素的元素r.NextBytes(writeArray);Console.WriteLine(数数组中的数据
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922