在 C# 中操作文件系统:面向初学者
操作文件系统是任何开发人员的关键技能之一。C# (.NET) 提供了强大的工具来创建、读取、写入和删除文件及目录。在本文中,我们将介绍文件系统的基本操作,这些操作对新手和经验丰富的程序员都很有用。所有示例均使用 C# 编写,并使用了 System.IO 命名空间。
System.IO 命名空间基础
System.IO 命名空间包含了所有用于与文件系统交互的核心类。要开始使用,请在文件开头添加以下指令:
using System.IO;using System; // 用于 Console 和其他基本操作我们将使用的主要类:
File— 用于文件操作的静态方法(创建、复制、删除)。FileInfo— 用于获取特定文件信息的实例类。Directory— 用于文件夹操作的静态方法。DirectoryInfo— 用于目录信息的实例类。Path— 用于路径处理的实用工具。
让我们在实践中了解每个方面。
创建并写入文件
创建文件并写入文本的最简单方法是使用 File.WriteAllText 方法。它会创建文件(或覆盖现有文件)并写入字符串。
string path = @"C:\\Temp\\example.txt";string content = "你好,世界!这是一个测试文件。";
File.WriteAllText(path, content);Console.WriteLine("文件已创建并写入。");如果需要写入多行,请使用 File.WriteAllLines:
string[] lines = { "第一行", "第二行", "第三行" };File.WriteAllLines(path, lines);要将数据追加到现有文件末尾,请使用 File.AppendAllText:
File.AppendAllText(path, "追加的行。");从文件读取数据
读取文件同样直观。File.ReadAllText 方法将整个内容作为单个字符串返回:
string readContent = File.ReadAllText(path);Console.WriteLine("文件内容:");Console.WriteLine(readContent);如果文件由多行组成,使用 File.ReadAllLines 更方便,它会返回一个字符串数组:
string[] readLines = File.ReadAllLines(path);foreach (string line in readLines){ Console.WriteLine(line);}对于大文件,最好使用 StreamReader 进行流式读取,以避免将整个文件加载到内存中:
using (StreamReader reader = new StreamReader(path)){ string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); }}操作文件夹(目录)
创建、检查存在性和删除文件夹是常见任务。以下是使用 Directory 类的方法:
string dirPath = @"C:\\Temp\\MyFolder";
// 检查是否存在if (!Directory.Exists(dirPath)){ Directory.CreateDirectory(dirPath); Console.WriteLine("文件夹已创建。");}else{ Console.WriteLine("文件夹已存在。");}
// 删除文件夹(如果为空)if (Directory.Exists(dirPath)){ Directory.Delete(dirPath); Console.WriteLine("文件夹已删除。");}要获取文件夹中的文件列表,请使用 Directory.GetFiles:
string[] files = Directory.GetFiles(@"C:\\Temp");foreach (string file in files){ Console.WriteLine(file);}类似地,对于子