C#中File,Path,Directory类的区别
https://blog.csdn.net/qq_43304572/article/details/84260450 / https://blog.csdn.net/2303_78156670/article/details/136754280 / http://t.zoukankan.com/yank-p-961747.html
1、File类:操作文件,剪切(Move),赋值(Copy),删除(delete),读取,写入
2、Path类:操作路径,获取路径下的GetFileName,GetExtension,GetFullPath
3、Directory类:操作文件夹,目录(文件夹)的创建(Creat),移动(Move),获取目录下的所有文件(GetFiles),所有文件夹(GetDirectories)
File与FileInfo类的主要区别,
File类是静态的,FileInfo不是静态的也没有静态的方法,仅可用于实例化的对象。
FileInfo方法基本类似于File。关于二者,作何选择。
● 如果仅进行单一方法调用,则可以使用静态File类上的方法。在此,单一调用要快一些,因为.NET Framework不必实例化新对象,再调用方法。
● 如果应用程序在文件上执行几种操作,则实例化FileInfo对象并使用其方法就更好一些。这会节省时间,因为对象已在文件系统上引用正确的文件,而静态类必须每次都寻找文件。
File类的常用静态方法
1.1、File Create(string path)
根据传入的路径创建一个文件。如果文件不存在,则创建文件;如果存在且不是只读的,则覆盖其内容
1.2、void Delete(string path)
如果文件存在,则删除指定文件;如果指定的文件不存在也不引发异常
1.3、bool Exists(string path)
判断指定文件是否存在,若存在则返回true,否则返回false
1.4、void Move(string sourceFileName, string destFileName)
将指定的文件移动到新位置,可以在新位置为文件指定不同的名称
1.5、FileStream Open(string path, FileMode)
打开指定路径上的文件并返回FileStream对象
1.6、void Copy(string sourceFileName, string destFileName)
将现有的文件赋值到新文件,可以指定是否允许覆盖同名的文件
File.Create("Data.txt"); //创建文件
Console.WriteLine("文件创建成功");
if(File.Exists("Data.txt")) //判断文件是否存在
{
Console.WriteLine("Data.txt文件存在");
}
else
{
Console.WriteLine("Data.txt文件不存在");
}
//文件创建成功
//Data.txt文件存在
FileInfo的特有属性
FileInfo类除了有许多与File类相似的方法外,同样也有它特有的特性
2.1、Directory
该属性用于检索一个DireectoryInfo对象,表示当前文件所在的目录
2.2、DirectoryName
该属性用于返回文件目录,而且这个属性是只读的
2.3、IsReadOnly
该属性用于判断文件是否是只读的
2.4、Length
该属性用于获取文件的大小(以字节为单位),并返回long类型的值
FileInfo aFile=new FileInfo(@"C:\Data.text"); //创建一个FileInfo类对象
aFile.Create(); //创建文件
Console.WriteLIne("文件创建成功");
if(aFile.Exists)
{
Console.WriteLine("Data.txt文件存在");
}
else
{
Console.Writeline("Data.txt文件不存在");
}
Console.WriteLine("文件当前目录为:"+aFile.Directory);
Console.WriteLine("文件大小为:"+aFile.Length);
//文件创建成功
//Data.txt文件存在
//文件当前目录为:E:\Data.txt
//文件大小为:0
而DirectoryInfo类与Directory区别,也FileInfo类似。
●如果进行单一调用,就使用静态Directory类。
●如果进行一系列调用,则使用实例化的DirectoryInfo。
浙公网安备 33010602011771号