C# 提供了丰富的文件操作功能,主要通过 System.IO 命名空间实现。以下是关键特性的分类说明:

文件读写操作
  • File.ReadAllText:读取文件全部内容为字符串。
  • File.WriteAllText:将字符串写入文件(覆盖原有内容)。
  • File.ReadAllLines:按行读取文件内容为字符串数组。
  • File.AppendAllText:追加内容到文件末尾。

示例代码:

string content = File.ReadAllText("example.txt");
File.WriteAllText("output.txt", "Hello, World!");

文件流操作
  • FileStream:提供对文件的字节级读写支持。
  • StreamReader/StreamWriter:封装流并提供文本读写功能。

示例代码:

using (FileStream fs = new FileStream("data.bin", FileMode.Create))
{
    byte[] data = Encoding.UTF8.GetBytes("Binary Data");
    fs.Write(data, 0, data.Length);
}

文件信息与目录操作
  • FileInfo/DirectoryInfo:获取文件/目录属性(如创建时间、大小等)。
  • Directory.GetFiles:获取目录下所有文件路径。
  • Path.Combine:安全地组合路径字符串。

示例代码:

FileInfo fi = new FileInfo("example.txt");
Console.WriteLine($"Size: {fi.Length} bytes");

string[] files = Directory.GetFiles(@"C:\Temp");

异步文件操作
  • File.ReadAllTextAsync:异步读取文件内容。
  • StreamReader.ReadToEndAsync:异步读取流内容。

示例代码:

async Task<string> ReadFileAsync(string path)
{
    return await File.ReadAllTextAsync(path);
}

文件监控
  • FileSystemWatcher:监控文件或目录的更改事件(如创建、修改、删除)。

示例代码:

FileSystemWatcher watcher = new FileSystemWatcher(@"C:\Temp");
watcher.Created += (s, e) => Console.WriteLine($"File created: {e.Name}");
watcher.EnableRaisingEvents = true;

特殊功能
  • 内存映射文件(MemoryMappedFile):处理超大文件。
  • 临时文件生成(Path.GetTempFileName)。
  • 文件加密/解密(File.Encrypt/File.Decrypt)。

注意事项:

  • 操作文件时需处理 IOExceptionUnauthorizedAccessException 等异常。
  • 使用 using 语句确保资源释放。
  • 跨平台开发时注意路径分隔符差异(建议使用 Path 类方法)。

更多推荐