黑马程序员C#中文件操作

来源:互联网 发布:jbl煲机软件 编辑:程序博客网 时间:2024/05/21 19:46

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------


一、文件属性操作

1.     文件夹选择对话框 FolderBrowserDialog

2.     按照通配符搜索目录下的文件

String[] files=Directory.GetFiles(string path,stringsearchparttern,SearchOption searchoption)

例如:string[] files=Directory.Getfiles(path,”*.txt”,SearchOptionAllDirectories)

3.     path.GetFileNameWithoutExtension(filename)获得文件的文件名(不要扩展名)

例如: string name=GetFileNameWithoutExtension(file)

4.     path.Combine(string path1,string path2)将两个路径合并

5.      path.GetExtension(sting path) 得到文件的后缀名

6.      path.GetFileName(sting path)得到文件的文件名

7.      path.GetFullPath(string path) 得到文件的全路径


二、主要类的介绍:

● File —— 静态实用类,提供许多静态方法,用于移动、复制和删除文件。

● Directory —— 静态实用类,提供许多静态方法,用于移动、复制和删除目录。

● Path —— 实用类,用于处理路径名称。

● FileInfo —— 表示磁盘上的物理文件,具有处理此文件的方法。要完成对文件的读写工作,就必须创建Stream对象。

● DirectoryInfo —— 表示磁盘上的物理目录,具有处理此目录的方法。

● FileStreamInfo —— 用作FileInfo和DirectoryInfo的基类,可以使用多态性同时处理文件和目录。

● FileStream —— 表示可写或可读,或二者均可的文件。此文件可以同步或异步地读写。

● StreamReader —— 从流中读取字符数据,可以使用FileStream创建为基类。

● StreamWriter —— 向流写入字符数据,可以使用FileStream创建为基类。

● FileSystemWatcher —— FileSystemWatcher是本章要介绍的最高级的类。它用于监控文件和目录,提供了这些文件和目录发生变化时应用程序可以捕获的事件。在Windows编程技术中缺乏此功能,但是现在.NET Framework很容易对文件系统事件作出响应。

本章还将介绍System.IO.Compression命名空间,它允许使用GZIP压缩或Deflate压缩模式读写压缩文件:

● DeflateStream —— 表示在写入时自动压缩数据或在读取时自动解压缩的流,压缩使用Deflate算法来实现。

● GZipStream —— 表示在写入时自动压缩数据或在读取时自动解压缩的流,压缩使用GZIP算法来实现。

最后,学习使用System.Runtime.Serialization命名空间及其子命名空间进行读写的串行化,主要介绍System.Runtime.Serialization.Formatters.Binary命名空间中的BinaryFormatter类,它允许把对象串行化为二进制数据流,并可以并行化这些数据。

File与FileInfo类的主要区别,
File类是静态的,FileInfo不是静态的也没有静态的方法,仅可用于实例化的对象。
FileInfo方法基本类似于File。关于二者,作何选择。
● 如果仅进行单一方法调用,则可以使用静态File类上的方法。在此,单一调用要快一些,因为.NET Framework不必实例化新对象,再调用方法。
● 如果应用程序在文件上执行几种操作,则实例化FileInfo对象并使用其方法就更好一些。这会节省时间,因为对象已在文件系统上引用正确的文件,而静态类必须每次都寻找文件。

而DirectoryInfo类与Directory区别,也FileInfo类似。
●如果进行单一调用,就使用静态Directory类。
●如果进行一系列调用,则使用实例化的DirectoryInfo。

FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。字符数据易于使用,但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行.
其中创建FileStream对象最简单的构造函数如下:

1        FileStream file = new FileStream(fileName,FileMode.Member);
2        FileStream file = new FileStream(fileName, FileMode.Member, FileAccess.Member);

而FileAccess的成员:

 

成 员

说 明

Read

打开文件,用于只读

Write

打开文件,用于只写

ReadWrite

打开文件,用于读写

 

对文件进行不是FileAccess枚举成员指定的操作会导致抛出异常。此属性的作用是,基于用户的身份验证级别改变用户对文件的访问权限。

在FileStream构造函数不使用FileAccess枚举参数的版本中,使用默认值FileAccess. ReadWrite。

FileMode枚举成员,使用每个值会发生什么,取决于指定的文件名是否表示已有的文件。

成 员

文 件 存 在

文件不存在

Append

打开文件,流指向文件的末尾,只能与枚举FileAccess.Write联合使用

创建一个新文件。只能与枚举FileAccess.Write联合使用

Create

删除该文件,然后创建新文件

创建新文件

CreateNew

抛出异常

创建新文件

Open

打开现有的文件,流指向文件的开头

抛出异常

OpenOrCreate

打开文件,流指向文件的开头

创建新文件

Truncate

打开现有文件,清除其内容。流指向文件的开头,保留文件的初始创建日期

抛出异常

 

FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据
StreamWriter允许将字符和字符串写入文件,它处理底层的转换,向FileStream对象写入数据。StreamReader也类似。

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
原创粉丝点击