C# 文件操作完全指南

发布时间:2026/10/28 6:19:34
C# 文件操作完全指南 1. C# 文件操作概述C# 提供了丰富的文件操作 API主要通过System.IO命名空间实现。无论是读取、写入、复制、移动还是删除文件C# 都提供了简洁而强大的方法。2. 常用文件操作类2.1 File 类File类提供静态方法用于创建、复制、删除、移动和打开文件。using System.IO; // 检查文件是否存在 if (File.Exists(test.txt)) { // 读取文件内容 string content File.ReadAllText(test.txt); Console.WriteLine(content); // 写入文件 File.WriteAllText(output.txt, Hello, C# File!); }2.2 FileInfo 类FileInfo类提供实例方法适合对同一文件进行多次操作。FileInfo fileInfo new FileInfo(data.txt); if (fileInfo.Exists) { Console.WriteLine($文件名: {fileInfo.Name}); Console.WriteLine($文件大小: {fileInfo.Length} 字节); Console.WriteLine($创建时间: {fileInfo.CreationTime}); // 复制文件 fileInfo.CopyTo(data_backup.txt, true); }2.3 Directory 和 DirectoryInfo 类用于目录操作包括创建、删除、遍历目录等。// 创建目录 Directory.CreateDirectory(MyFolder); // 获取目录下所有文件 string[] files Directory.GetFiles(MyFolder, *.txt); foreach (string file in files) { Console.WriteLine(file); }3. 文件读写操作3.1 文本文件读写// 写入文本文件 File.WriteAllText(example.txt, 第一行\n第二行\n第三行); // 追加内容 File.AppendAllText(example.txt, \n追加的内容); // 读取所有行 string[] lines File.ReadAllLines(example.txt); foreach (string line in lines) { Console.WriteLine(line); }3.2 二进制文件读写using (FileStream fs new FileStream(data.bin, FileMode.Create)) { byte[] data { 0x01, 0x02, 0x03, 0x04 }; fs.Write(data, 0, data.Length); } // 读取二进制文件 using (FileStream fs new FileStream(data.bin, FileMode.Open)) { byte[] buffer new byte[4]; fs.Read(buffer, 0, buffer.Length); Console.WriteLine(BitConverter.ToString(buffer)); }3.3 使用 StreamReader 和 StreamWriter// 写入文件 using (StreamWriter writer new StreamWriter(stream.txt)) { writer.WriteLine(使用 StreamWriter 写入); writer.WriteLine(第二行内容); } // 读取文件 using (StreamReader reader new StreamReader(stream.txt)) { string line; while ((line reader.ReadLine()) ! null) { Console.WriteLine(line); } }4. 文件操作实践技巧4.1 异常处理try { string content File.ReadAllText(important.txt); Console.WriteLine(content); } catch (FileNotFoundException ex) { Console.WriteLine($文件未找到: {ex.Message}); } catch (IOException ex) { Console.WriteLine($IO错误: {ex.Message}); } catch (UnauthorizedAccessException ex) { Console.WriteLine($权限不足: {ex.Message}); }4.2 文件监控FileSystemWatcher watcher new FileSystemWatcher(); watcher.Path C:\MyFolder; watcher.Filter *.txt; watcher.NotifyFilter NotifyFilters.LastWrite | NotifyFilters.FileName; watcher.Changed (sender, e) Console.WriteLine($文件 {e.Name} 已修改); watcher.Created (sender, e) Console.WriteLine($文件 {e.Name} 已创建); watcher.Deleted (sender, e) Console.WriteLine($文件 {e.Name} 已删除); watcher.EnableRaisingEvents true;4.3 临时文件处理// 创建临时文件 string tempFile Path.GetTempFileName(); Console.WriteLine($临时文件: {tempFile}); // 使用后删除 File.Delete(tempFile); // 获取临时目录 string tempPath Path.GetTempPath(); Console.WriteLine($临时目录: {tempPath});5. 路径操作string fullPath C:\Users\Admin\Documents\report.docx; // 获取文件名 string fileName Path.GetFileName(fullPath); // report.docx // 获取目录名 string directory Path.GetDirectoryName(fullPath); // C:\Users\Admin\Documents // 获取扩展名 string extension Path.GetExtension(fullPath); // .docx // 组合路径 string newPath Path.Combine(directory, backup, fileName);6. 异步文件操作// 异步读取 async Task ReadFileAsync(string path) { using (StreamReader reader new StreamReader(path)) { return await reader.ReadToEndAsync(); } } // 异步写入 async Task WriteFileAsync(string path, string content) { using (StreamWriter writer new StreamWriter(path)) { await writer.WriteAsync(content); } } // 使用示例 await WriteFileAsync(async.txt, 异步写入的内容); string result await ReadFileAsync(async.txt);7. 总结C# 的文件操作 API 设计合理且功能全面从简单的文本读写到复杂的异步操作都能轻松应对。在实际开发中建议始终使用using语句确保资源正确释放对文件操作进行适当的异常处理考虑使用异步方法提升应用响应性注意文件路径的跨平台兼容性

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询