C#文件操作基础之File类和FileInfo类

文件和I/O流的差异:

文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。因此对于文件,我们常常想到目录路径,磁盘存储,文件和目录名等方面。I/O流提供一种后备存储写入字节和从后备存储读取字节的方式。后备存储可以为多种存储媒介之一。
System.IO命名空间中的常用类:

BinaryReader     用特定的编码将基元数据类型读作二进制值BinaryWriter     以二进制形式将基元类型写入流,并支持用特定的编码写入字符串Directory        公开用于创建、移动和枚举通过目录和子目录的静态方法,无法被继                  承DirectoryInfo    公开用于创建、移动和枚举目录和子目录的实例方法,无法被继承File             提供创建、复制、删除、移动和打开文件的静态方法,协助创建                      FileStream对象FileInfo         提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建                  FileStream对象FileStream       公开以文件为主的Stream,既支持同步读写操作,也支持异步读写操                  作FileSystemInfo   为FileInfo和DirectoryInfo对象提供基类StreamReader     实现一个TextReader,使其以一种特定的编码从字节流中读取字符StreamWriter     实现一个TextWriter,使其以一种特定的编码向流中写入字符

1.File类:

Copy                  将现有文件复制到新文件
Create                在指定路径中创建文件Delete                删除指定的文件,如果指定的文件不存在,则不引起异常Exists                确定指定的文件是否存在Move                  将指定文件移到新位置,并提供指定新文件名的选项Open                  打开指定路径上的FileStreamGetCreationTime       返回指定文件或目录的创建日期和时间OpenRead              打开现有文件进行读取OpenText              打开现有UTF-8编码文本文件以进行读取OpenWrite             打开现有文件进行写入

 

2.FileInfo类:
Directory       获取父目录的实例
Exists          获取指示文件是否存在的值
FullName        获取目录或文件的完整目录
Length          获取当前文件的大小
Name            获取文件名


3.File类和FileInfo类的基本操作方法

注意:
由于File类中的所有方法都是静态的,所以如果只想执行一个操作,那么使用File类中方法的效率比使用相应的FileInfo类中的方法可能更高

File类中的方法都是静态方法,在使用时需要对所有方法都执行安全检查。因此如果打算多次重用某个对象,可考虑改用FileInfo类中的相应方法,因为不总是需要安全检查。

 

(1)判断文件是否存在Exists方法

返回bool型,如果path为空或者没有权限,则返回false
File:判断C盘根目录下有没有test.txt文件:
File.Exists("C:\\test.txt")

FileInfo:
FileInfo fileinfo = new FileInfo("C:\\test.txt")
if(fileinfo.Exists){}

 

(2)创建文件用Create方法

File类的Create方法有4中重载方法:
public static FileStream Create(string path)
public static FileStream Create(string path,int bufferSize)
public static FileStream Create(string path,int bufferSize,FileOptions options)
public static FileStream Create(string path,int bufferSize,FileOptions options,FileSecurity fileSecurity)

File类Create方法参数说明
path               文件名
bufferSize         用于读取和写入文件的已放入缓冲区的字节数
options            FileOptions值之一,它描述如何创建或改写该文件
fileSecurity       FileSecurity值之一,它确定文件的访问控制和审核安全性

File类:
File.Create("C:\\test.txt")

FileInfo类:
FileInfo fileinfo = new FileInfo("C:\\test.txt")
fileinfo.Create();

 

(3)复制文件用File类的Copy方法以及FileInfo类的CopyTo方法

File类的Copy方法或者FileInfo类的CopyTo方法
File类的Copy方法有两种重载方式
public static void Copy(string sourceFileName,string destFileName)
public static void Copy(string sourceFileName,string destFileName,bool overwrite)
sourceFileName表示要复制的文件,destFileName表示目标文件的名称,不能是目录,如果是第一种重载,则目标文件参数不能是现有文件。
overwrite表示是否可以改写目标文件

将C盘根目录下的test.txt文本文件复制到D盘根目录下:
(这边注意措辞,说明D盘根目录下是没有test.txt文件的)
File.Copy("C:\\test.txt","D:\\test.txt")

FileInfo类的CopyTo方法也有两种重载方式
public FileInfo CopyTo(string destFileName)
public FileInfo CopyTo(string destFileName,bool overwrite)

FileInfo fileinfo = new FileInfo("C:\\test.txt");
fileinfo.CopyTo("D:\\test.txt",true);

 

(4)移动文件用File类的Move方法和FileInfo类的MoveTo方法

File类-Move方法-
public static void Move(string sourceFileName,string destFileName)
File.Move("C:\\test.txt","D:\\test.txt")

FileInfo类-MoveTo方法-publicvoid MoveTo(string destFileName)
FileInfo fileinfo = new FileInfo("C:\\test.txt");
fileinfo.MoveTo("D:\\test.txt");

 

(5)删除文件用Delete方法

File类-Delete方法-public staticvoid Delete(string path)
File.Delete("C:\\test.txt")

FileInfo类-Delete方法-publicvoid Delete(string path)

FileInfo fileinfo = new FileInfo("C:\\test.txt");
fileinfo.Delete("D:\\test.txt");
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值