Windows文件操作

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

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

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

资源描述

1文件操作2预习检查FileMode是个什么类型的数据?使用File类需要实例化吗?3本章任务实现文本读写器实现小型资源管理器4掌握文本文件的读写会进行文件和文件夹操作本章目标5为什么需要操作文件如何使得程序中的数据持久化?用数据库实现成本太大适用于大批量数据使用文件对数据进行持久化,用程序操作文件6文件的应用场合计算机上有多种文件可以保存数据这些文件你都熟悉吧?7如何读写文本文件创建一个文件流创建相应的读写器(readerandwriter)执行读写操作关闭读写器(readerandwriter)关闭文件流读写一个文件的步骤:123458读写文本文件应用实现文本文件读写器演示示例:文本读写器9创建文件流FileStreammyfs=newFileStream(path,FileMode.Create);指定文件路径FileMode枚举Create:创建一个新文件Open:指定打开现有文件CreateNew:新建一个文件Append:打开现有文件追加指定如何打开文件引入System.IO命名空间——提供文件操作的类文件流用于(FileStream类)读写文件如果文件存在、则改写旧文件如果文件存在会发生异常10创建写入器和读取器文本文件写入器:StreamWriterStreamWritermySw=newStreamWriter(myfs);mySw.Write(content);mySw.WriteLine(content);传入文件流写入方法文本文件读取器:StreamReader写入一行数据的方法StreamReadermySr=newStreamReader(myfs);content=mySr.ReadToEnd();content=mySr.ReadLine();传入文件流读取到文件末尾读取一行11将数据写入文本文件写入文本文件FileStreammyfs=newFileStream(path,FileMode.Create);StreamWritermySw=newStreamWriter(myfs);mySw.Write(content);mySw.Close();myfs.Close();创建一个文件流创建写入器写入操作关闭演示示例:写入文本文件12读取文本文件this.ofdMain.ShowDialog();stringpath=ofdMain.FileName;……FileStreammyfs=newFileStream(path,FileMode.Open);StreamReadermySr=newStreamReader(myfs);content=mySr.ReadToEnd();txtContent.Text=content;mySr.Close();myfs.Close();读取文本文件使用OpenFileDialog控件显示打开文件的窗口创建一个文件流创建读取器将流从当前位置读到末尾关闭演示示例:读取文本文件选择文件13解决读取时中文乱码读取包含中文的TXT文件时,可能出现中文乱码FileStreammyfs=newFileStream(path,FileMode.Open);StreamReadermySr=newStreamReader(myfs,Encoding.Default);//读取器content=mySr.ReadToEnd();txtContent.Text=content;……默认使用Unicode字符,设置Encoding改变默认设置Encoding.UTF8或Encoding.Default演示示例:使用Encoding解决中文乱码14读取文件1415保存写入文件1516文件操作的应用文件操作包括判断文件是否存在、拷贝、移动、删除等等文件的复制和删除将源文件拷贝到目标位置删除源文件17文件操作File类:提供操作文件的各种方法方法说明Exists(stringpath)用于检查指定文件是否存在,该方法返回一个布尔值Copy(stringsourceFileName,stringdestFileName)按指定路径的源文件中的内容复制到目标文件中,如果目标文件不存在,则在指定路径中新建一个文件Move(stringsourceFileName,stringdestFileName)将指定文件移动到一个新的路径Delete(stringpath)删除指定的文件,如果指定的文件不存在,则不引发异常18文件操作示例演示示例:文件复制和删除//检查一个文件是否存在if(!File.Exists(this.txtFileName.Text)){MessageBox.Show(文件不存在);}else{//将源文件拷贝到一个新文件File.Copy(this.txtFileName.Text,this.txtCopyName.Text);MessageBox.Show(拷贝成功!);}19复制文件19202021目录操作Directory类提供对文件夹的拷贝、移动、删除等操作方法说明Exists(stringpath)用于检查指定文件夹在磁盘上是否存在Move(stringsourceDirName,stringdestDirName)用于将文件或目录及其内容移到新位置Delete(stringpath,boolrecursive)删除指定目录,如果bool指定true,则删除子目录中的所有目录内容Delete(stringpath)从指定路径删除空目录22文件操作222323复制文件夹中所有文件24静态类与非静态类File类与Directory类publicstaticclassFilepublicstaticclassDirectory静态类静态类非静态类用static修饰不用static修饰只包含静态成员可以包含静态成员不可以包含实例成员可以包含实例成员使用类名调用静态成员使用实例对象调用非静态成员不能被实例化可以被实例化不能包含实例构造函数包含实例构造函数25提供实例方法的文件类FileInfo类DirectoryInfo类FileInfofi=newFileInfo(@D:\temp\FileInfo.txt);Console.WriteLine(文件是否存在:+fi.Exists);Console.WriteLine(文件名:+fi.Name);Console.WriteLine(文件目录名:+fi.Directory.Name);fi.CopyTo(E:\\temp\\FileInfo.txt);如需调用一系列方法,FileInfo效率更高、更简单DirectoryInfodi=newDirectoryInfo(@D:\test);//返回当前目录的子目录DirectoryInfo[]subDir=di.GetDirectories();//返回当前目录的文件列表FileInfo[]fi=di.GetFiles();以实例方式提供File和Directory类绝大多数方法26文件操作综合应用3-1开发小型资源管理器,可以浏览文件信息显示选定文件夹下的文件列表显示D盘下文件夹结构272829文件操作综合应用3-2绑定当前目录下子目录DirectoryInfodirectoryInfo=newDirectoryInfo(node.Tag.ToString());DirectoryInfo[]dirs=directoryInfo.GetDirectories();foreach(DirectoryInfodiindirs){TreeNodetemp=newTreeNode();temp.Text=di.Name;temp.Tag=di.FullName;node.Nodes.Add(temp);}D:\获取D:\的子目录遍历子目录,获取目录信息30文件操作综合应用3-3获取文件夹下文件列表演示示例:小型资源管理器FileInfo[]fileInfo=directoryInfo.GetFiles();ListMyFilefiles=newListMyFile();//MyFile类定义我的文件类foreach(FileInfomyFileinfileInfo){MyFilefile=newMyFile();file.FileName=myFile.Name;file.FileLength=myFile.Length;file.FileType=myFile.Extension;file.FilePath=myFile.FullName;files.Add(file);}获取某目录下所有文件文件名文件长度文件扩展部分的字符串完整目录31练习—资源管理器显示文件信息训练要点使用FileInfo类使用DirectoryInfo类需求说明实现小型资源管理器,支持显示文件信息使用TreeView控件显示文件夹结构使用ListView控件显示选定文件夹下文件列表完成时间:25分钟32指导—实现文件复制训练要点使用File类需求说明完善小型资源管理器,实现文件复制支持用户从“浏览文件夹”对话框选定目标位置方便用户选择文件复制目标位置33指导—实现文件复制难点分析打开“浏览文件夹”,并获得选择的存储路径完成时间:20分钟FolderBrowserDialogfbd=newFolderBrowserDialog();DialogResultresult=fbd.ShowDialog();……if(result==DialogResult.OK){desPath=fbd.SelectedPath;desPath+=\\+lvFiles.SelectedItems[0].SubItems[0].Text;//复制文件……}34练习—实现文件删除需求说明完善小型资源管理器,实现文件删除,并刷新ListView显示完成时间:15分钟35总结操作一个文件的主要步骤?创建文件流时,指定一个文件的打开方式是创建新文件,FileMode的值是什么?File类提供的支持文件操作的方法有哪些?FileInfo类和File类的区别?请说出各自的应用场合?如何获取某目录下的所有文件夹?36

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

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

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

×
保存成功