### C# 文件操作方法
在本篇文章中,我们将详细介绍如何使用C#进行基本的文件操作。这些操作包括读取文件、写入文件、追加内容到文件、复制文件、删除文件、移动文件以及目录的基本操作等。通过这些知识点的学习,您将能够熟练地使用C#处理各种文件操作需求。
#### 1. 读取文件
我们来看看如何使用C#读取文件的内容。这里使用了`StreamReader`类来读取文件。示例代码如下:
```csharp
string fileName = @"c:\I.txt";
using (StreamReader sr = new StreamReader(fileName))
{
string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
```
这段代码中,`StreamReader`对象用于打开并读取文本文件中的内容。`ReadLine`方法一次读取一行,直到文件结束。如果文件编码不是默认的UTF-8,可以通过传递额外的参数来指定正确的编码,例如使用GBK编码:
```csharp
using (StreamReader sr = new StreamReader(fileName, Encoding.GetEncoding("gb2312")))
{
// ...
}
```
#### 2. 写入文件
接下来是写入文件的操作。这里使用了`StreamWriter`和`File.CreateText`方法来创建一个新文件并写入内容。示例代码如下:
```csharp
string filePath = Server.MapPath(".") + "/myText.txt";
using (StreamWriter sw = File.CreateText(filePath))
{
sw.WriteLine("д");
sw.WriteLine("abc");
sw.WriteLine(".NETʼ");
sw.Flush();
}
```
在上述代码中,`File.CreateText`方法创建了一个新的文本文件,并返回一个`StreamWriter`对象。使用`StreamWriter`的`WriteLine`方法可以将字符串写入文件。调用`Flush`方法确保所有缓冲区的数据都被写入文件。
#### 3. 追加文件内容
有时我们需要向已存在的文件中追加内容,这时可以使用`File.AppendText`方法。示例代码如下:
```csharp
using (StreamWriter sw = File.AppendText(filePath))
{
sw.WriteLine("暂");
sw.WriteLine("kzlll");
sw.WriteLine(".NETʼ");
sw.Flush();
}
```
这里使用了`File.AppendText`方法,它会打开文件并在末尾追加内容。
#### 4. 复制文件
复制文件是一个常见的需求。C#提供了简单的API来实现这一功能。示例代码如下:
```csharp
string originalFile = Server.MapPath(".") + "/myText.txt";
string newFile = Server.MapPath(".") + "/myTextCopy.txt";
File.Copy(originalFile, newFile, true);
```
在这个例子中,`File.Copy`方法用于复制文件。第三个参数`true`表示如果目标文件已经存在,则覆盖它。
#### 5. 删除文件
删除文件也很简单,只需使用`File.Delete`方法即可。示例代码如下:
```csharp
string fileToDelete = Server.MapPath(".") + "/myTextCopy.txt";
File.Delete(fileToDelete);
```
#### 6. 移动文件
如果需要将文件从一个位置移动到另一个位置,可以使用`File.Move`方法。示例代码如下:
```csharp
string originalFile = Server.MapPath(".") + "/myText.txt";
string newFile = Server.MapPath(".") + "/myTextCopy.txt";
File.Move(originalFile, newFile);
```
#### 7. 目录操作
除了文件操作外,目录(文件夹)的操作也非常重要。下面是一些基本的目录操作示例:
- 创建目录:`Directory.CreateDirectory`
- 创建子目录:`CreateSubdirectory`
- 设置当前目录:`SetCurrentDirectory`
- 删除目录:`Directory.Delete`
示例代码如下:
```csharp
DirectoryInfo d = Directory.CreateDirectory("c:\\sixAge");
DirectoryInfo d1 = d.CreateSubdirectory("sixAge1");
DirectoryInfo d2 = d1.CreateSubdirectory("sixAge1_1");
Directory.SetCurrentDirectory("c:\\sixAge");
Directory.CreateDirectory("sixAge2");
Directory.CreateDirectory("sixAge2\\sixAge2_1");
```
通过以上示例,我们可以看到C#提供了丰富的API来处理文件和目录的各种操作。掌握这些基本操作对于开发基于文件的应用程序是非常有帮助的。