c#第七章 目录与文件管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第7章目录与文件管理7.1系统环境相关类7.2目录管理7.3文件管理7.4文件的读写7.5FileSystemWatcher组件27.1系统环境相关类.NET框架下,可通过下面的类获得一些系统环境的相关信息。1.Environment类该类提供当前环境和操作系统平台的相关信息,还提供了获取本地逻辑驱动器和特殊文件夹的方法。2.DriveInfo类提供了本地驱动器相关的详细信息。37.1.1Environment类常用的属性和方法CurrentDirectory属性:当前路径OSVersion属性:操作系统版本NewLine属性:获取当前环境的换行字符串UserNmae属性:当前登录到操作系统的用户GetLogicalDrives方法:计算机中逻辑驱动器名称的字符串数组。GetFolderPath方法:返回系统特殊文件夹的路径,如“我的电脑”47.1.2DriveInfo类使用DriveInfo可以确定当前可用的驱动器以及这些驱动器的类型还可以通过查询来获得驱动器更详细的数据,如容量和剩余空间等。书中P154给出了一些这两个类使用的例句,大家上机时可以试试,课上就不演示了。57.2目录管理在System.IO命名空间中,.NET框架提供了3种对目录进行管理的类,分别是Directory类、DirectoryInfo类和Path类。Directory类和DirectoryInfo类都可以用来对磁盘目录进行操作,如新建目录。Path类是对包含文件或目录路径信息的字符串做操作。67.2.1Directory和DirectoryInfo类区别:Directory类:只提供静态方法DirectoryInfo类:需要实例化才能使用DirectoryInfo类的构造函数形式如下:publicDirectoryInfo(stringpath);参数path表示目录所在的路径。例如:DirectoryInfodirInfo=newDirectoryInfo(@e:\temp);注意:path参数必须是合法的路径,也可用System.Environment.SpecialFolder下的枚举来获取特殊文件夹路径。7DirectoryInfo类的主要属性Exists:返回目录是否存在的Bool值FullName:当前路径的完整目录名Parent:获得上级目录CreationTime:获取或设置当前目录的创建时间。Root:获取根目录Attibutes:获取或设置当前目录属性,如只读,可利用FileAttibutes类提供的常量,如FileAttibutes.ReadOnly8Directory类提供的静态方法注意:Directory只提供了方法,这些方法都是静态方法,通过类名直接调用。利用这些方法进行可以建立、删除、移动目录等操作,一般需指定目录参数。CreateDirectoryDeleteMoveExistsGetCurrentDirectory更多的方法见P155表7-397.2.2Path类1.Path类用于对包含文件或目录路径信息的String实例执行操作。注意:Path可以仅仅是一个路径,也可以是路径及文件名。2.常用方法:GetDirectoryName方法GetExtension方法GetFileName方法:文件名和扩展名GetFileNameWithoutExtension方法GetFullPath方法107.2.3目录的创建、删除和移动1.创建目录Directory类的CreateDirectory方法用于创建指定路径中的所有目录。publicstaticDirectoryInfoCreateDirectory(stringpath)其中参数path为要创建的目录路径。举例:Directory.CreateDirectory(c:\\test);Directory.CreateDirectory(c:\\test\\t1\\t2);112.删除目录Directory类的Delete方法用于删除指定的目录常用的方法原型为:publicstaticvoidDelete(stringpath,boolrecursive)其中:path参数不区分大小写,可以是相对于当前工作目录的相对路径,也可以是绝对路径。recursive是一个布尔值,如果要移除path中的目录(包括所有子目录和文件),则为true;否则为false。123.移动目录Directory类的Move方法能够重命名或移动目录。方法原型为:publicstaticvoidMove(stringsourceDirName,stringdestDirName)其中:sourceDirName为要移动的文件或目录的路径;destDirName为新位置的目标路径。注意:destDirName参数指定的目标路径应为新目录,如果目标目录已存在,会导致异常。137.2.4FolderBrowserDialog对话框FolderBrowserDialog对话框是系统提供的标准对话框之一,用来选择一个目录。以树形控件的形式将指定路径的文件夹及其子文件夹显示出来,供用户浏览、创建或选择。调用FolderBrowserDialog的ShowDialog方法可以打开对话框。如果用户在对话框中单击“确定”按钮,则返回DialogResult.OK,否则为DialogResult.CancelSelectedPath属性可获得用户选择的路径147.2.4FolderBrowserDialogFolderBrowserDialog的主要属性:属性名含义Description获取或设置对话框中在树视图控件上显示的说明文本RootFolder获取或设置从其开始浏览的根文件夹SelectedPath获取或设置用户选定的路径157.3文件管理System.IO命名空间中文件操作类:(1)File(2)FileInfo相同点:都能完成对文件的复制、移动、重命名、创建、打开、删除和追加到文件操作。不同点:FileInfo类提供实例化后的属性、方法,而File只提供静态方法。用法与Directory和DirectoryInfo相似。通常与Path对象配合使用167.3.1文件操作一般利用File类提供的方法对文件进行操作。判断文件是否存在:调用File类的Exist方法可以判断是否存在指定的文件。复制文件:File.Copy(sourceFileName,destFileName,booloverwrite)删除文件:File.Delete(stringpath)移动文件:File.Move(sourceFileName,destFileName)注意:Move方法不提供创建目录的功能,要确保存在目标文件目录。17例如,下面的代码在文件原路径下复制了一个备份:stringpath1=@c:\temp\MyTest.txt;stringpath2=@c:\temp\MyTestBack.txt;System.IO.File.Copy(path1,path2,true);187.3.2文件属性的设置与获取(1)对File类:用SetAttributes方法,GetAttributes方法设置、获取。(2)对FileInfo类:用Attributes属性设置、获取。注意:FileAttributes的每个枚举值代表目录或者文件的一个属性,各个枚举值是按照2的幂排列的,即依次为20,21,22,23…2.可以利用“与”、“或”操作设置或获取单个属性。197.3.2文件属性与设置(续)判断某个路径是目录还是文件:下面的代码演示了如何判断某个路径是目录还是文件:if((File.GetAttributes(path)&FileAttributes.Directory)==FileAttributes.Directory){//这个判断是如何进行的?Console.WriteLine(“{0}”是目录,path);}else{Console.WriteLine(“{0}”是文件,path);}207.3.4OpenFileDialog和SaveFileDialogOpenFileDialog:显示打开文件对话框。常用属性:属性名说明ShowReadOnly确定是否在对话框中显示只读复选框ReadOnlyChecked指示是否选中只读复选框MultiSelect指示对话框是否允许选择多个文件FileName获取或设置一个包含在文件对话框中选定的文件名的字符串Filter获取或设置当前文件名筛选器字符串3.常用方法:ShowDialog()217.3.4OpenFileDialog和SaveFileDialogSaveFileDialog用于显示保存文件对话框,提示用户选择文件的保存位置。调用SaveFileDialog的ShowDialog方法,将打开【另存为】对话框。如果用户在对话框中单击【保存】按钮,则保存该文件,并返回DialogResult.OK,否则返回DialogResult.Cancel。22【例7-1】利用FolderBrowerDialog、OpenFileDialog和SaveFileDialog对话框,设计一个Windows应用程序,实现将文件从一个目录复制到另一个目录的功能。注意:运行前需要在相关盘符下事先建立一个temp文件夹对话框控件综合举例237.4文件的读写在System.IO命名空间中,提供了多种类用于进行数据文件和数据流的读写操作。主要有:1.文件编码,提供了多种编码。2.文本文件的读写。3.二进制文件的读写。247.4.1文件的编码1.文件编码常见的文件编码方式有ASCII编码、Unicode编码、UTF8编码和ANSI编码。2.在System.Text命名空间中,有一个Encoding类,用于表示字符编码。对文件进行操作时,常用的编码方式有:Encoding.Default:操作系统的当前ANSI编码Encoding.Unicode:Unicode编码Encoding.UTF8:UTF8编码,网页经常使用,将一个Unicode字符编为1-4个字节。257.4.2文本文件的读写文本文件是没有任何格式,只记录表示文件内容字符的文件,如*.txt文件。File类提供了非常方便的读写文本文件的方法。主要有下列方法:ReadAllTextAppendAllTextReadAllLinesWriteAllLines26ReadAllText方法ReadAllText方法打开一个文件,读取文件的每一行,将其添加为字符串的一个元素。读取结束后关闭文件。常用原型为:publicstaticstringReadAllText(stringpath,Encodingencoding)其中:path为文件路径,encoding为编码方式,无法自动检测出汉字的UTF-8编码,一般可以指定为Encoding.Default。27AppendAllText方法AppendAllText方法用于将指定的字符串追加到文件中。如果文件不存在则自动创建该文件。常用原型为:publicstaticvoidAppendAllText(stringpath,stringcontents,Encodingencoding)其中参数contents为追加到文件的字符串。28ReadAllLines和WriteAllLines方法ReadAllLines方法打开一个文本文件,将文件的所有行都读入一个字符串数组,然后关闭该文件。根据回车换行来确定一行,实际是一“段”WriteAllLines方法创建一个新文件,在其中写入指定的字符串数组,然后关闭文件。如果目标文件已存在,则覆盖该文件。297.4.2文本文件的读写:流流是字节序列的抽象概念。流也是进行数据读

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功