简单介绍:
四个类都是属于System.IO命名空间
| 名称 | 操作对象 | 使用方法 |
|---|---|---|
| File | 文件 | 静态类,直接调用静态方法处理文件 |
| FileInfo | 文件 | 表示磁盘上的物理文件,具有处理此文件的方法 |
| Directory | 目录 | 静态类,直接调用静态方法处理目录 |
| DirectoryInfo | 目录 | 表示磁盘上的物理目录,具有处理此目录的方法 |
(一)File 和 FileInfo
1.区别及选择:
区别:
▶File类是全静态的,只有静态方法,不可实例化。
▶FileInfo类必须实例化使用,不包含静态方法。
选择:
▶一般如果只是单一方法调用,则可以选择File类,不需要实例对象再调用方法。
▶如果是需要对某一个文件进行多项操作,则选择FileInfo实例化对象会好一点,不需要使用File类每次查找文件进行安全检查。
2.File
(1).常用方法及作用介绍
| 方法 | 作用 |
|---|---|
| bool Exists(string path) | 确定指定的文件是否存在 |
| void Delete(string path) | 删除指定的文件 |
| DateTime GetCreationTime(string path) | 返回指定文件或目录的创建日期和时间 |
| FileStream Create(string path) | 在指定路径中创建或覆盖文件 |
| StreamWriter CreateText(string path) | 创建或打开用于写入 UTF-8 编码文本的文件 |
| void Copy(string sourceFileName, string destFileName, bool overwrite) | 将现有文件复制到新文件。 允许覆盖同名的文件 |
| FileStream Open(string path, FileMode mode, FileAccess access, FileShare share) | 打开指定路径上的 System.IO.FileStream,具有带读、写或读/写访问的指定模式和指定的共享选项 |
| string[] ReadAllLines(string path, Encoding encoding) | 打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件 |
| string ReadAllText(string path, Encoding encoding) | 打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件 |
| void WriteAllLines(string path, string[] contents, Encoding encoding) | 创建一个新文件,在其中写入指定的字节数组,然后关闭该文件 |
| void WriteAllText(string path, string contents, Encoding encoding) | 创建一个新文件,使用指定编码向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件 |
(2).部分方法测试使用:
测试前截图(文件夹里什么都没有):

贴上测试代码:
//要测试的文件路径
static string path = @"J:\Test\FileTest.txt";
static void Main(string[] args)
{
Test_By_File();
}
static void Test_By_File()
{
//先判断文件是否存在
Console.WriteLine("文件是否存在:" + File.Exists(path));
//按照路径创建一个文件
StreamWriter writer = File.CreateText(path);
writer.Close();//关闭文件
Console.WriteLine("现在文件是否存在呢:" + File.Exists(path));
//写入文件三句话
File.WriteAllText(path, "这是一个测试\n测试什么呢\n测试File静态类");
//按行读取文件
Console.WriteLine("-----读取文件:");
foreach (var line in File.ReadAllLines(path))
{
Console.WriteLine(line);
}
Console.ReadKey();
}
运行截图:

运行后文件截图:

3.FileInfo
(1).常用属性及方法介绍
| 属性或方法 | 作用 |
|---|---|
| DirectoryInfo Directory { get; } | 获取父目录的实例 |
| string DirectoryName { get; } | 获取表示目录的完整路径的字符串 |
| override string Name { get; } | 获取文件名 |
| bool IsReadOnly { get; set; } | 获取或设置确定当前文件是否为只读的值 |
| void MoveTo(string destFileName) | 将指定文件移到新位置,提供要指定新文件名的选项 |
| FileInfo CopyTo(string destFileName, bool overwrite) | 将现有文件复制到新文件,overwrite 如果允许覆盖现有文件,则为 true;否则为 false |
| override void Delete() | 永久删除文件 |
| FileStream Open(FileMode mode, FileAccess access, FileShare share) | 用读、写或读/写访问权限和指定的共享选项在指定的模式中打开文件 |
| StreamReader OpenText() | 创建使用从现有文本文件中读取的 UTF8 编码的 System.IO.StreamReader |
| StreamWriter AppendText() | 创建一个 System.IO.StreamWriter,它向 System.IO.FileInfo 的此实例表示的文件追加文本 |
| FileInfo Replace |

本文详细介绍了C#中如何使用File、FileInfo、Directory和DirectoryInfo类进行文件和目录的操作,包括创建、读写、删除等常见方法,并提供了丰富的代码示例。
最低0.47元/天 解锁文章
6763

被折叠的 条评论
为什么被折叠?



