文件操作
一、文件内容的读取和写入
1、文件操作的步骤
(1)创建一个文件流,首先导入命名空间:
using System.IO; //导入命名空间
FileStream fs = new FileStream(path, FileMode.Create); //创建新文件,如果文件已存在则改写旧文件
创建文件流时括号里的参数分别是:读取/写入的文件路径和打开文件的方式。以下就是它的全部方式:
1、Create:创建新文件,如果文件已存在则打开该文件进行改写;
2、CreateNew:创建新文件,如果文件已经存在则异常;
3、Open:打开已存在的文件,如果不存在就报错;
4、OpenOrCreate:文件存在就打开该文件,如果不存在则新建该文件再打开;
5、Append:打开已存在文件,在后面追加,如果文件不存在就新建文件再写入;
6、Truncate:如果文件存在就先删除所有内容再添加,否则异常。
(2)创建阅读器/写入器
StreamReader sr = new StreamReader(fs, Encoding.Default); //阅读器
StreamWriter sw = new StreamWriter(fs); //写入器
写入器也可以像阅读器一样,设置文件的写入的编码方式,只需要加一个参数即可。阅读器和写入器的方法是:
//阅读器
ReadLine() //读一行数据,如:string str = fs.ReadLine();
ReadToEnd() //从当前位置读取到文档末尾
Close() //关闭阅读器
//写入器
Write() //写入数据
WriteLine() //写入一行
Close() //关闭写入器
(3)执行读写操作
string content = mySr.ReadToEnd(); //读取文件内容保存到string变量content中
sw.Write(content); //将字符串content写入到文件中
(4)关闭
首先我们应该关闭阅读器/写入器再关闭文件流:
sr.Close(); //关闭阅读器
sw.Close(); //关闭写入器
fs.Close(); //关闭文件流
2、文件控件
(1)OpenFileDialog:选择打开的文件;
(2)SaveFileDialog:选择保存文件;
(3)FolderBrowserDialog:获得目录。
二、怎么操作文件和目录
1、文件
(1)File
File是static类,它的常用方法是:
Exists(path); //用于检查指定文件是否存在
Copy("源路径","新路径"); //将指定路径的源文件内容复制到新路径,新路径文件不能是已经存在的
Move("源路径","新路径"); //将指定文件移到一个新的路径
Delete(path); //删除指定文件,如果指定文件不存在,也不会异常
Create(path); //在指定路径新建一个文件
(2)FileInfo
FileInfo是非static类,它的常用属性和方法是:
public FileInfo(string fileName); //构造函数
//属性
Exists //检查指定文件是否存在
DirectoryName //文件目录
Length //文件大小
Name //文件名称
FullPath //获取全路径
Extension //获取后缀
//方法
Delete(); //永久删除文件
CopyTo("新文件"); //将现有文件复制到新文件,不允许覆盖现有文件
MoveTo("新文件"); //将指定文件移到新位置
2、目录
(1)Directory
Directory是static类,它的方法有:
Exists(path); //用于检查指定文件夹是否存在
Move("源文件","新文件"); //将指定文件或目录及其内容移动到新位置
Delete(path); //删除指定文件
Delete(path,bool recursive); //删除指定文件,如果recursive值为true,删除子目录中的所有目录内容
CreateDirectory(path); //在指定路径新建一个文件夹
GetCreationTime(path); //得到创建时间
GetDirectories(path); //得到所有子目录
GetFiles(path); //得到所有子文件
(2)DirectoryInfo
DirectoryInfo是非static类,它的属性及方法有:
public DirectoryInfo(path); //创建
//属性
Exists //检查指定文件夹是否存在
Name //文件夹名称
DirectoryInfo Parent //拿到父目录
//方法
Create(); //创建目录
CreateSubdirectory(); //创建子目录
Delete(); //永久删除文件夹
Delete(path,bool recursive); //删除指定目录,如果recursive值为true,连同子目录一起删除
MoveTo("新文件"); //将指定文件夹移到新位置
DirectoryInfo[] GetDirectories(path); //得到所有子目录
FileInfo[] GetFiles(path); //得到所有子文件
3、static和非static的区别
(1)static类只能包含静态成员,而非static类可含非static成员;
(2)static类只能通过类名去调用成员;
(3)static类不能实例化,不能包含构造函数;
(4)同一个类中,static方法不能直接调用非static成员。
注意:static关键字只能修饰类成员,不能修饰方法内部成员。
好了,以上就是本章对文件操作所有介绍啦!