C# 操作文件在.NET Framework中进行的所有的输入和输出工作都要使用到流。流是串行化设备的抽象串行化设备可以以线性方式存储数据,并可以以同样的方式访问:一次访问—个字节。此设备可以是磁盘文件、打印机、内存位置和或任何其他支持以线性方式读写的对象。 当向某些外部目标写数据时,就要用到输出流,这可以是物理磁盘文件、网络位置、打印机或其他程序。
常用的类: File------实用类,提供许多静态方法,用于移动、删除、和复制文件。 Directory------实用类,提供许多静态方法,用于移动、删除和复制目录。 Path------ 实用类,用于处理路径名称。 FileInfo------表示磁盘上的物理文件,具有可以处理此文件的方法,要完成对文件的读写工作,就必须创建Stream对像。 DirectoryInfo------表示磁盘上的物理目录,具有可以处理此目录的方法 FileStream-------表示可以被写或被读,或二者都可的文件,此文件可以同步或异步读和写 StreamReader------从流中读取字符数据,并可通过使用FileStream被创建为基类。 StreamWriter------向流写字符数据,可通过使用FileStream被创建为基类。 FileSystemWatcher---- FileSystemWatcher是用于监控文件和目录,并在这些位置发生变化时,给出应用程序可以捕获的事件。
◆File和Directory类 作为实用类,File和Directory类都提供了许多方法,用于处理文件系统以及其中的文件和目录。这些是静态方法,涉及移动文件、查询和更新属性并创建FileStream对象。 File类一些最常用的静态方法: Copy()------将文件复制到规定的位置 Create()------在规定的位置上创建文件 Delete()------删除文件 Open()-------在规定的路径上返回FileStream对像 Move()------将规定的文件移动到新位置,可以在新位置给文件规定不同的名字
Directory类的一些常用的静态方法 CreateDirectory()------创建具有规定路径的目录 Delete()------删除规定的目录以及其中的所有文件 GetDirectories()------返回表示当前目录之下的目录的Directory对像的数组 GetFiles()-------返回在当前目录中的File对像的数组 Move()------将规定的目录移动到新位置。可以在新位置为文件夹规定一个新名称
FileInfo 类 FileInfo类不像File类,它没有静态方法,仅可用于实例化的对像。FileInfo对像表示在磁盘或网络位置的文件,注意它不是流,为了读写文件,必须创建Stream对像。 fileInfo类提供了下面的关于基础性的文件的属性,这些属性可能用来更新文件。 Attributes-----获取或设置当前文件的属性 CreationTime------获取当前文件的创建日期和时间 DirectoryName------获取文件目录的路径 Exists------判断是否存在文件 FullName------检索文件的完整路径 Length------获取文件的容量 Name------仅仅返回文件的名称,而不是完整的文件位置路径、
当在.NET代码中规定路径名时,您可以使用绝对路径名,也可以使用相对路行名。绝对路径名显式地规定文件或目录来自于哪—个己知的位置——比如是c:驱动器。它的—个范例是C:\work\LogFile.txt。注意它淮确地定义了其位置。 相对路径名相对于应用程序在文件系统上运行的位置。通过使用相对路径名称,无需规定已知的驱动器或位置;当前的目录就是起点。例如,如果应用程序运行在c:\DeVelopment\FileDemo目录上(这里的应用程序是指代码生成后的exe文件),并使用了相对路径“LogFile.txt,”,则该文件就位于C:\DeVelopment\FileDemo\LogFile.txt中。为了上移目录,则使用.. 字符。这样,在同一个应用程中路径“../test.txt”是指向应用程序所在的目录的上一级目录里的文件test.txt。
◆FileStream对象 FileStream对象表示在磁盘或网络路径上指向文件的流。当类提供向文件读写字节的方法时,经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作字节和字节数组,而Stream类操作字符数据。字符数据易于使用,但是有些操作比如随机文件访问,就必须由FileStream对象执行。 FileStream对象的构造函数: FileStream aFile = new FileStream(“Log.txt”,FileMode.OpenOrCreate); FileMode枚举具有几种成员: Append------如果文件存在,就打开文件,将文件位置移动到文件的末尾,并创建一个新文件。FileMode.Append仅可以与枚举FileAccess.Write联合使用 Create------创建新文件;如果存在这样的文件,就破坏它。 CreateNew------创建新文件,但是如果已经存在此文件,则抛出异常 Open------打开现有的文件,但是不存在所指定的文件,则抛出异常 OpenOrCreate------如果文件存在,则规定打开文件,否则就创建新文件,如果文件已经存在,则保留在文件中的数据 Truncate------打开现有文件,清除其内容,然后我们可以向文件写入全新的数据,但是保留文件的初始创建日期,必须存在有文件,否则就抛出异常
访问级别 前面的构造函数默认以只读模式打开文件,需要一个附加参数规定不同的访问级别,此参数是FileAccess参数。 FileStream aFile=new FileStream(”Log.txt”,fileMode.OpenOrCreate,FileAccess.Write) FileAccess枚举有三种类型:Read、Write、ReadWrite.此属性的作用是:基于用户的身份验证级别改变用户对文件的访问
读取文件的位置用seek:public long Seek(long offset,SeekOrigin origin) Long offset是规定文件指针以字节为单位的移动距离;SeekOrigin origin是规定开始计算的起始位置,此枚举包含3个值:Begin,Current和End。 例:aFile.Seek(8,SeekOrigin.Begin);// SeekOrigin.Begin指得是文件指针从文件的第一个字节起;而参数‘8‘指得是移动到文件的第8个字节 上一篇:IP数据包的校验和算法C#版 下一篇:把RichTextBox中的文本保存到Sql Server中(C#) 更多相关文章
|
推荐文章
精彩文章
|