关闭

关闭

关闭

封号提示

内容

首页 C#网络应用编程基础 教学课件 ppt 作者 马骏2 第06章 目录与文件管理.ppt

C#网络应用编程基础 教学课件 ppt 作者 马骏2 第06章 目录与文件管理.ppt.ppt

C#网络应用编程基础 教学课件 ppt 作者 马骏2 第06…

希望
2019-09-15 0人阅读 举报 0 0 暂无简介

简介:本文档为《C#网络应用编程基础 教学课件 ppt 作者 马骏2 第06章 目录与文件管理.pptppt》,可适用于高等教育领域

全国最大的共享资料库,等您下载。本资料为C#网络应用编程基础 教学课件 ppt 作者 马骏2 第06章 目录与文件管理.ppt.ppt文档,由吉林快3—吉林快三用户提供,以下为正文内容。

*第六章目录与文件管理目录管理文件管理文件的读写*本章主要内容:目录的创建、移动和删除FolderBrowserDialog控件文件的创建、移动、复制和删除OpenFileDialog控件和SaveFileDialog控件对文件的读写等操作*目录管理在SystemIO命名空间下,有两个类对磁盘和目录进行操作管理:Directory类DirectoryInfo类相同点:均能对目录进行操作区别:前者必须被实例化后才能使用而后者则只提供了静态的方法。如果多次使用某个对象一般使用前者如果仅执行某一个操作则使用后者提供的静态方法效率更高一些。*目录管理(续)DirectoryInfo类的构造函数形式:publicDirectoryInfo(stringpath)path表示目录所在的路径注意使用的路经不能包含空格等非法字符。如果希望使用特殊路径像ldquo我的文档rdquo文件夹、ldquo开始rdquo菜单文件夹、ldquo桌面rdquo文件夹等可以用SystemEnvironmentSpecialFolder下的枚举例如得到ldquo我的文档rdquo文件夹的方法为:SystemEnvironmentGetFolderPath(SystemEnvironmentSpecialFolderPersonal)*DirectoryInfo类的主要属性:Attributes获取或设置当前FileSystemInfo的FileAttributes。Exists获取指示目录是否存在的布尔值FullName获取当前路径的完整目录名*目录管理(续)Parent获取指定子目录的父目录Root获取根目录CreationTime获取或设置当前目录创建时间LastAccessTime获取或设置上一次访问当前目录的时间LastWriteTime获取或设置上一次写入当前目录的时间*目录管理(续)Directory类提供的静态方法CreateDirectory创建指定路径中的所有目录。Delete删除指定的目录。Exists确定给定路径是否引用磁盘上的现有目录GetCreationTime获取目录的创建日期和时间GetCurrentDirectory获取应用程序的当前工作目录GetDirectories获取指定目录中子目录的名称。GetFiles返回指定目录中的文件的名称。GetFileSystemEntries返回指定目录中所有文件和子目录的名称。GetLastAccessTime返回上次访问指定文件或目录的日期和时间*目录管理(续)GetLastWriteTime返回上次写入指定文件或目录的日期和时间GetParent检索指定路径的父目录包括绝对路径和相对路径Move将文件或目录及其内容移到新位置SetCurrentDirectory将应用程序的当前工作目录设置为指定的目录SetLastAccessTime设置上次访问指定文件或目录的日期和时间SetLastWriteTime设置上次写入目录的日期和时间*目录的创建、删除与移动目录的创建CreateDirectory方法(Directory类中)用于创建指定路径中的所有目录方法原型:publicstaticDirectoryInfoCreateDirectory(stringpath)参数:path为要创建的目录路径。若指定的目录不存在则按path的指定创建所有目录和子目录。如:DirectoryCreateDirectory(ldquoc:testrdquo)DirectoryCreateDirectory(c:testtt)*目录的创建、删除与移动(续).目录的删除Delete方法(Directory类)用于删除指定的目录该方法有两种重载的形式:)publicstaticvoidDelete(stringpath)path为要移除的空目录的名称。此目录必须为可写或为空。)publicstaticvoidDelete(stringpath,boolrecursive)path为要移除的目录的名称不区分大小写recursive是一个布尔值若要移除path中的目录、子目录和文件则为true否则为false。*目录的创建、删除与移动(续)例创建并删除指定的目录usingSystemusingSystemIOclassTest{publicstaticvoidMain(){指定要操作的目录stringpath=c:MyDirtry{确定目录是否存在if(DirectoryExists(path))*目录的创建、删除与移动(续){ConsoleWriteLine(目录已存在)return}创建目录DirectoryInfodi=DirectoryCreateDirectory(path)ConsoleWriteLine(成功创建目录:{},DirectoryGetCreationTime(path))删除目录diDelete()ConsoleWriteLine(目录已删除)}catch(Exceptione){ConsoleWriteLine(程序异常:{},eToString())}}}*目录的创建、删除与移动(续).目录的移动Move方法(Directory类)能够重命名或移动目录方法原型为:publicstaticvoidMove(stringsourceDirName,stringdestDirName)sourceDirName为要移动的文件或目录的路径destDirName为指向sourceDirName的新位置的目标路径。允许sourceDirName和destDirName参数指定相对或绝对路径信息。*FolderBrowserDialog控件功能:用于显示用户选择文件夹的对话框。注意FolderBrowserDialog类在SystemWindowsForms命名空间下无法继承该类。调用FolderBrowserDialog类的ShowDialog方法:可以打开对话框提示用户浏览、创建并最终选择一个文件夹。只能选择文件系统中的文件夹不能选择虚拟文件夹。只允许用户选择文件夹而非文件。文件夹的浏览通过树控件完成。*FolderBrowserDialog控件(续)FolderBrowserDialog控件的主要属性:Description获取或设置对话框中在树视图控件上显示的说明文本。RootFolder获取或设置从其开始浏览的根文件夹。SelectedPath获取或设置用户选定的路径。Tag获取或设置一个对象该对象包含控件的数据。(从CommonDialog继承)CanRaiseEvents获取一个指示组件是否可以引发事件的值。(从Component继承)*FolderBrowserDialog控件(续)FolderBrowserDialog控件的主要成员方法:Dispose释放由Component占用的资源。Reset将属性重置为其默认值。ShowDialog运行通用对话框。Equals确定两个Object实例是否相等(从Object继承。)GetService返回一个对象该对象表示由Component或它的Container提供的服务(从Component继承)*FolderBrowserDialog控件(续)一般在创建新的FolderBrowserDialog后将RootFolder设置为开始浏览的位置。或将SelectedPath设置为最初选定的RootFolder子文件夹的绝对路径。也可以选择设置Description属性为用户提供附加说明。最后调用ShowDialog方法将对话框显示给用户。FolderBrowserDialog是有模式对话框在显示时它会阻止应用程序剩余部分的运行直到用户选定了文件夹。*FolderBrowserDialog控件(续)例:单击Windows窗体按钮打开FolderBrowserDialog对话框的使用示例。如图:*FolderBrowserDialog控件(续)代码:privatevoidbuttonClick(objectsender,EventArgse){DialogResultresult=folderBrowserDialogShowDialog()if(result==DialogResultOK){textBoxText=folderBrowserDialogSelectedPath}else{textBoxText=}}*文件管理File类和FileInfo类为FileStream对象的创建和文件的创建、复制、移动、删除、打开等提供了支持。使用这两个类对文件进行操作时必须具备相应的权限否则将产生异常。相同点:都能完成对文件的操作。不同点:FileInfo类必须实例化并且每个FileInfo的实例必须对应于系统中一个实际存在的文件。如果打算多次重用某个对象可考虑使用FileInfo的实例方法而不是File类的相应静态方法。*文件复制、删除与移动文件复制File类的Copy方法用于将现有文件复制到新文件。方法原型为:publicstaticvoidCopy(stringsourceFileName,stringdestFileName)参数:sourceFileName为要复制的文件destFileName为目标文件的名称。它不能是一个目录或现有文件。*文件复制、删除与移动(续)例:usingSystemusingSystemIOclassTest{publicstaticvoidMain(){stringpath=c:tempMyTesttxtstringpath=c:tempMyTesttxttry{FileDelete(path)FileCopy(path,path)ConsoleWriteLine({}复制到{},path,path)*文件复制、删除与移动(续)再次复制相同的文件操作失败FileCopy(path,path)ConsoleWriteLine(再次复制相同的文件操作失败)}catch(Exceptione){ConsoleWriteLine(不允许进行二次复制)ConsoleWriteLine(eToString())}}}*文件复制、删除与移动(续)文件删除File类的Delete方法用于删除指定的文件。如果指定的文件不存在则不引发异常。方法定义:publicstaticvoidDelete(stringpath)参数:path为要删除的文件的名称。例:usingSystemusingSystemIOclassFileTest{publicstaticvoidMain(){*文件复制、删除与移动(续)ConsoleWriteLine(确定要删除指定目录下的所有文件)ConsoleWriteLine(点击#Y#键继续任意键取消)inta=ConsoleRead()if(a==#Y#||a==#y#){ConsoleWriteLine(正在删除文件)}else{*文件复制、删除与移动(续)ConsoleWriteLine(操作被取消)return}DirectoryInfodir=newDirectoryInfo(C:MyDir)foreach(FileInfofindirGetFiles()){fDelete()}}}*文件复制、删除与移动(续)文件移动File类的Move方法用于将指定文件移到新位置并提供指定新文件名的选项。方法原型为:publicstaticvoidMove(stringsourceFileName,stringdestFileName)参数:sourceFileName为要移动的文件的名称destFileName为文件的新路径。例:usingSystemusingSystemIOclassTest*文件复制、删除与移动(续){publicstaticvoidMain(){stringpath=c:tempMyTesttxtstringpath=c:tempMyTesttxttry{if(!FileExists(path)){FileStreamfs=FileCreate(path)fsClose()}if(FileExists(path)){*文件复制、删除与移动(续)FileDelete(path)}移动文件FileMove(path,path)ConsoleWriteLine(文件由{}移动到{},path,path)判断文件是否存在if(FileExists(path)){ConsoleWriteLine(源文件存在)}else{ConsoleWriteLine(源文件不存在)}*文件复制、删除与移动(续)}catch(Exceptione){ConsoleWriteLine(操作取消:{},eToString())}}}*文件属性与设置自学*OpenFileDialog控件功能:用于显示用户打开文件的对话框。OpenFileDialog类属于SystemWindowsForms命名空间无法继承该类。使用此类可检查某个文件是否存在并打开该文件。ShowReadOnly属性确定是否在对话框中显示只读复选框ReadOnlyChecked属性指示是否选中只读复选框。*例:单击Windows窗体按钮打开OpenFileDialog对话框。代码:privatevoidbuttonClick(objectsender,EventArgse){DialogResultresult=openFileDialogShowDialog()if(result==DialogResultOK)textBoxText=openFileDialogFileNameelsetextBoxText=}*OpenFileDialog控件(续)代码:privatevoidbuttonClick(objectsender,EventArgse){DialogResultresult=openFileDialogShowDialog()if(result==DialogResultOK){textBoxText=openFileDialogFileName}else{textBoxText=}}*SaveFileDialog控件SaveFileDialog控件用于显示用户保存文件的对话框提示用户选择文件的保存位置。SaveFileDialog类属于SystemWindowsForms命名空间无法继承该类。使用此类可以打开和改写现有文件也可以创建新文件。*文件的读写在SystemIO命名空间中提供了多种类型用于进行数据文件和数据流的读写操作。*文件和流文件(file)和流(stream)即有区别又有联系。文件是在各种媒质上(可移动磁盘、硬盘、CD等)永久存储的数据的有序集合。它是一种进行数据读写操作的基本对象。通常情况下文件按照树状目录进行组织每个文件都有文件名、文件所在路径、创建时间、访问权限等属性。*文件和流(续)流是字节序列的抽象概念如文件、输入输出设备、内部进程通信管道或者TCPIP套接字等均可以看成流。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。除了和磁盘文件直接相关的文件流以外还有多种其它类型的流如分布在网络中、内存中和磁带中的流分别称为网络流、内存流和磁带流。所有表示流的类都是从抽象基类Stream继承的。*文件和流(续)流的操作有三类:读取:从流中读取数据到变量中。写入:把变量中的数据写入到流中。定位:重新设置流的当前位置以便随机读写。File类的静态方法主要是用于创建FileStream类。一个FileStream类的实例实际上代表一个磁盘文件使用FileStream类对文件系统上的文件进行读取、写入、打开和关闭操作并对其它与文件相关的操作系统句柄进行操作如管道、标准输入和标准输出。读写操作可以指定为同步或异步操作。FileStream对输入输出进行缓冲从而提高了系统的性能。*文件的打开打开指定路径上的FileStream可以使用File类的Open方法或OpenRead方法或OpenText方法。其中Open打开文件的方式有三种如下表所示:*文件的打开(续)FileMode值用于指定在文件不存在时是否创建该文件并确定是保留还是改写现有文件的内容FileAccess值指定可以对文件执行的操作FileShare值指定其它线程所具有的对该文件的访问类型。*文本文件的读写利用Open方法打开文件后可以用StreamReader类来读取文件的内容用StreamWriter类向文件写入内容它们提供了按文本模式读写数据的方法。下面例子中用到的OpenText方法是File类的一个静态方法不能被某个具体的File类的实例调用。*文本文件的读写(续)例从一个文本文件中读取内容并显示在屏幕上。usingSystemusingSystemIOclassFileTest{publicstaticvoidMain(){StreamReadersrtry{sr=FileOpenText(c:c#filefiletxt)}catch{*文本文件的读写(续)ConsoleWriteLine(文件打开失败)return}while(srPeek()!=){Stringstr=srReadLine()ConsoleWriteLine(str)}ConsoleWriteLine(到达文件结尾)srClose()}}*例:向文本文件中写入文本流。usingSystemusingSystemIOclassFileTest{publicstaticvoidMain(){StreamWriterswtry{sw=FileCreateText(c:c#filefiletxt)}文本文件的读写(续)*catch{ConsoleWriteLine(文件创建失败)return}swWriteLine(网址:)swWriteLine(wwwsohucom)swWriteLine(wwwnet)swWriteLine(wwwmicrosoftcomchina)swWriteLine(wwwsinacomcn)swClose()}}文本文件的读写(续)*二进制文件的读写BinaryReader和BinaryWriter类在SystemIO中用于按二进制模式读写文件。它们提供的一些读写方法是对称的如针对不同的数据结构:BinaryReader提供了ReadByte、ReadBoolean、ReadInt、ReadInt、ReadDouble、ReadString等方法。BinaryWriter则提供了WriteByte、WriteBoolean、WriteInt、WriteInt、WriteDoubleWriteString方法。*二进制文件的读写(续)例:将内存中随机产生的二进制数据写入文件并验证写入结果是否正确。usingSystemusingSystemIOclassBinaryRW{staticvoidMain(){inti=创建随机数据写入流bytewriteArray=newbyte*二进制文件的读写(续)newRandom()NextBytes(writeArray)BinaryWriterbinWriter=newBinaryWriter(newMemoryStream())BinaryReaderbinReader=newBinaryReader(binWriterBaseStream)try{将数据写入流ConsoleWriteLine(正在写数据hellip)for(i=iwriteArrayLengthi){binWriterWrite(writeArrayi)}流定位到开始位置*二进制文件的读写(续)binReaderBaseStreamPosition=读取流中的数据for(i=iwriteArrayLengthi){if(binReaderReadByte()!=writeArrayi){ConsoleWriteLine(写数据错)return}}ConsoleWriteLine(数据已写入)*二进制文件的读写(续)}捕获EndOfStreamException异常输出错误信息catch(EndOfStreamExceptione){ConsoleWriteLine(写数据出错n{},eGetType()Name)}}}

类似资料

该用户的其他资料

2015.11创新杯创新杯说课大赛国赛说课课件.ppt

19--课程..创新杯说课大赛国赛说课课件.ppt

2014创新杯直线的倾斜角与斜率课程创新杯说课大赛国赛说课课件.ppt

13幼师3 住创新杯说课大赛国赛说课课件.ppt

2010血栓的形成讲课曹颜冬创新杯说课大赛国赛说课课件.ppt

职业精品

精彩专题

让你惊艳又清新的英文短诗合集

让你清新惊艳的英文小诗有哪些呢?小编汇集了以下经典英文诗、唯美爱情小诗、英文诗押韵技巧等等,让爱好英文短诗的你能够一起体验其中的乐趣!

用户评论

0/200
上传我的资料

热门资料排行换一换

  • 第六枚戒指教案

  • 复旦大学校长开学典礼致辞

  • 医院感染管理工作流程

  • 单位公示证明

  • 海南旺季房地产销售计划书

  • 护士招聘考试题含答案

  • 工作场所职业卫生监督管理规定(新版…

  • 2015年高危妊娠管理总结

  • 少儿围棋入门教程

  • 资料评价:

    / 51
    所需积分:0 立即下载

    VIP

    在线
    客服

    免费
    邮箱

    吉林快3—吉林快三服务号

    扫描关注领取更多福利