C# 提供了 File
类,用于执行各种操作,例如创建文件、打开文件、读写文件等。
什么是文件和目录?
文件是用于存储相关信息的命名位置。例如,
program.cs
是一个 C# 文件,其中包含有关 C# 程序的信息。
目录是文件和子目录的集合。目录中的目录称为子目录。
在 C# 中处理文件
C# 提供了 System.IO
命名空间,其中包含几个用于对文件和目录执行操作的类。

上图显示了 System.IO
命名空间下的一些类。在这些类中,我们将学习 File
类及其处理 C# 文件的方法。
C# File 类及其方法
File
类提供了内置方法,允许我们对文件执行输入/输出操作。一些常用的方法是
方法 | 用途 |
---|---|
Create() |
在指定路径创建或覆盖文件。 |
Open() |
在指定路径打开一个具有读/写访问权限的 FileStream 。 |
WriteAllText() |
创建新文件,将指定的字符串写入文件,然后关闭文件。 |
ReadAllText() |
打开文本文件,读取文件的所有行,然后关闭文件。 |
Copy() |
将现有文件复制到新文件。不允许覆盖同名文件。 |
AppendAllText() |
打开文件,将指定的字符串追加到文件,然后关闭文件。如果文件不存在,此方法将创建文件,将指定的字符串写入文件,然后关闭文件。 |
在 C# 中创建文件
我们使用 File
类的 Create()
方法在 C# 中创建新文件。例如,
// create a file at pathName
FileStream fs = File.Create(pathName);
在这里,File
类在 pathName
创建一个文件。
注意:如果文件已存在,Create()
方法会覆盖该文件。
示例:创建文件
using System;
using System.IO;
class Program
{
static void Main()
{
// path of the file that we want to create
string pathName = @"C:\Program\myFile.txt";
// Create() creates a file at pathName
FileStream fs = File.Create(pathName);
// check if myFile.txt file is created at the specified path
if (File.Exists(pathName))
{
Console.WriteLine("File is created.");
}
else
{
Console.WriteLine("File is not created.");
}
}
}
输出
File is created.
在上面的示例中,我们使用 Create()
方法在 C:\Program
目录下创建了一个名为 myFile.txt
的文件。
创建文件后,请注意我们使用了 Exists()
方法来检查 myFile.txt
文件是否存在。
注意: "C:\Program\myFile.txt"
前面的 "@"
表示这是一个逐字字符串。我们使用逐字字符串来告知编译器忽略转义字符 \
。
打开文件
我们使用 File
类的 Open()
方法在 C# 中打开现有文件。该方法在指定文件上打开一个 FileStream
。例如,
using System;
using System.IO;
class Program
{
static void Main()
{
string pathName = @"C:\Program\myFile.txt";
// open a file at pathName
FileStream fs = File.Open(pathName, FileMode.Open);
}
}
在上面的示例中,请注意代码,
// opens the file at pathName
FileStream fs = File.Open(pathName, FileMode.Open);
在这里,Open()
方法打开了 myFile.txt
文件。其中,FileMode.Open
指定 - 打开现有文件。
注意:文件流是用于保存文件数据的字节序列。每个文件至少包含一个文件流。
写入文件
我们使用 File
类的 WriteAllText()
方法向文件写入内容。该方法创建一个新文件并将内容写入该文件。
让我们看一个在 C# 中向文件写入内容的示例。
using System;
using System.IO;
class Program
{
static void Main()
{
string pathName = @"C:\Program\myFile.txt";
// create a file at pathName and write "Hello World" to the file
File.WriteAllText(pathName, "Hello World");
}
}
在上面的示例中,请注意代码,
File.WriteAllText(pathName, "Hello World");
在这里,WriteAllText()
方法在 C:\Program
目录下创建了 myFile.txt
,并将 "Hello World"
写入该文件。

上图显示了包含文本 "Hello World"
的 myFile.txt
文件。
注意:如果文件已存在,WriteAllText()
方法会覆盖该文件。
在 C# 中读取文件
我们使用 File
类的 ReadAllText()
方法来读取文件的内容。该方法返回一个包含指定文件中所有文本的字符串。
让我们读取我们写入了 "Hello World"
的 myFile.txt
文件的内容。
using System;
using System.IO;
class Program
{
static void Main()
{
string pathName = @"C:\Program\myFile.txt";
// read the content of myFile.txt file
string readText = File.ReadAllText(pathName);
Console.WriteLine(readText);
}
}
输出
Hello World
在上面的示例中,请注意代码,
// read the content of myFile.txt file
string readText = File.ReadAllText(pathName);
ReadAllText()
方法读取 myFile.txt
文件并返回 "Hello World"
。