C# 文件系统操作:完整指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程
```html

在 C# 中处理文件系统:从基础到高级技术



文件系统操作是任何应用程序开发中的关键任务之一。在 C# (.NET) 中,为此目的存在一个强大的命名空间 System.IO,它为开发人员提供了创建、读取、写入、移动和删除文件及文件夹的完整工具集。在本文中,我们将详细分析所有基本的文件系统操作,从简单的示例开始,到高级的数据处理技术结束。



C# 中文件操作的基础



System.IO 命名空间包含 File 和 FileInfo 类,它们提供了用于管理文件的静态方法和实例方法。让我们看看基本操作。



读取和写入文本文件



处理文本文件最简单的方法是使用 File 类的静态方法:



using System.IO;

// 将文本写入文件(创建新文件或覆盖现有文件)string content = "Привет, мир! Это пример работы с файлами в C#.";File.WriteAllText(@"C:\\temp\\example.txt", content);

// 从文件中读取所有文本string readContent = File.ReadAllText(@"C:\\temp\\example.txt");Console.WriteLine(readContent);

// 追加到文件末尾File.AppendAllText(@"C:\\temp\\example.txt", "Новая строка добавлена.");


处理二进制文件



要处理二进制数据,请使用 File.ReadAllBytes 和 File.WriteAllBytes:



byte[] binaryData = new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F };File.WriteAllBytes(@"C:\\temp\\binary.bin", binaryData);

byte[] readBinary = File.ReadAllBytes(@"C:\\temp\\binary.bin");Console.WriteLine(string.Join(", ", readBinary)); // 输出: 72, 101, 108, 108, 111


检查文件是否存在并删除它



在执行文件操作之前,检查文件是否存在总是很有用的:



string filePath = @"C:\\temp\\example.txt";

if (File.Exists(filePath)){ Console.WriteLine("Файл существует. Удаляем..."); File.Delete(filePath); Console.WriteLine("Файл удален.");}else{ Console.WriteLine("Файл не найден.");}


在 C# 中处理目录



为了管理文件夹,使用了 Directory 和 DirectoryInfo 类。它们允许创建、移动、重命名和删除目录,以及获取有关它们的信息。



创建和删除文件夹



string dirPath = @"C:\\temp\\MyNewFolder";

// 创建文件夹(如果已存在,不会抛出异常)Directory.CreateDirectory(dirPath);

// 检查是否存在if (Directory.Exists(dirPath)){ Console.WriteLine("Папка создана успешно.");}

// 删除文件夹(第二个参数 - 是否递归删除)Directory.Delete(dirPath, recursive: true);Console.WriteLine("Папка удалена.");


获取文件和子文件夹列表



GetFiles 和 GetDirectories 方法允许获取目录的内容:



string targetDir = @"C:\\temp";

// 获取目录中的所有文件string[] files = Directory.GetFiles(targetDir);Console.WriteLine("Файлы в директории:");foreach (string file in files){ Console.WriteLine($" {Path.GetFileName(file)}");}

// 获取所有子文件夹string[] subDirs = Directory.GetDirectories(targetDir);Console.WriteLine("Подпапки:");foreach (string dir in subDirs){ Console.WriteLine($" {Path.GetFileName(dir)}");}

// 按模式搜索(例如,所有文本文件)string[] txtFiles = Directory.GetFiles(targetDir, "*.txt");Console.WriteLine($"Найдено {txtFiles.Length} текстовых файлов.");


使用 DirectoryInfo



DirectoryInfo 类

```

博客

书籍推荐