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)
将现有的文件赋值到新文件,可以指定是否允许覆盖同名的文件

1
2
3
4
5
6
7
8
9
10
11
12
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类型的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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。

posted @   yinghualeihenmei  阅读(280)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示