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                  打开指定路径上的FileStream
GetCreationTime       返回指定文件或目录的创建日期和时间
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");


你可能感兴趣的:(C#文件操作)