文件操作

文件操作

一、文件内容的读取和写入

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关键字只能修饰类成员,不能修饰方法内部成员。

好了,以上就是本章对文件操作所有介绍啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值