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语句确保资源正确释放对文件操作进行适当的异常处理考虑使用异步方法提升应用响应性注意文件路径的跨平台兼容性

相关新闻

c语言学习日记

c语言学习日记

你好 ,我是一名准大一计算机科学与技术新生。今天是我第二天学习c语言通过学编程,我想要提升自己的能力与技术 ,日积月累,不断充实自己,毕业之后能够找一份理想的工作,多一份选择的机会。我是十八年零基础电…

2026/8/23 23:44:48 阅读更多 →
3D打印战火燃至线下!拓竹等企业多线布局,市场竞争白热化

3D打印战火燃至线下!拓竹等企业多线布局,市场竞争白热化

【3D打印企业线下扩张】3D打印企业的战火正在烧向线下,以拓竹科技为代表的企业加速在线下跑马圈地。自去年9月开始,拓竹科技在全国多地开设线下旗舰店,选址大都位于华润万象城等核心商圈的黄金地段铺位,门店位置紧贴大疆、苹果、影…

2026/8/23 23:44:48 阅读更多 →
Android 板端 WiFi 无法连接问题排查:从 lsmod、lsusb 到 WiFi 驱动冲突定位

Android 板端 WiFi 无法连接问题排查:从 lsmod、lsusb 到 WiFi 驱动冲突定位

作为一个05后刚入行的小白程序员,今天尝试写第一篇博客,希望记录下自己的工作和成长经历,如果能够帮助到未来的朋友们当然是荣幸之至,即使没什么热度,多年后回看这些日记应该也会感慨万千。闲话少叙!最近在…

2026/8/23 23:43:48 阅读更多 →

最新新闻

AI大模型Agent应用开发实战:从LangChain、RAG到MCP与微调

AI大模型Agent应用开发实战:从LangChain、RAG到MCP与微调

这次我们来看一个面向AI大模型应用开发者的系统性课程资源——“【2027必修AI大模型】Agent应用开发课程100集完整版”。这套课程的核心价值在于,它试图将当前AI应用开发中最核心、最热门的几个技术栈(LangChain、Prompt、RAG、MCP、大模型微调&#xff…

2026/8/24 6:34:16 阅读更多 →
Spring Boot与微服务面试实战指南

Spring Boot与微服务面试实战指南

1. 项目背景与核心价值最近三年Java技术栈的招聘市场出现明显分化:一方面初级岗位竞争激烈,投递比经常超过50:1;另一方面具备Spring Boot和微服务实战能力的中高级开发者始终供不应求。某头部招聘平台2023年数据显示,要求Spring B…

2026/8/24 6:34:16 阅读更多 →
Java面试技巧:用幽默化解技术难题的实战案例

Java面试技巧:用幽默化解技术难题的实战案例

1. 面试场景还原:当技术严谨遇上幽默应对互联网大厂的技术面试向来以高难度著称,但偶尔也会出现令人捧腹的戏剧性场面。去年我作为某大厂面试官时,遇到了一位自称"蔡虚昆"的候选人(当然这是化名)。这位候选人…

2026/8/24 6:34:16 阅读更多 →
DBCView实战指南:从零创建与编辑CAN总线DBC文件

DBCView实战指南:从零创建与编辑CAN总线DBC文件

1. 项目缘起:为什么我们需要一个趁手的DBC编辑器?在汽车电子和嵌入式开发领域,如果你和CAN总线打过交道,那么DBC文件对你来说一定不陌生。它就像一份“字典”,定义了CAN网络上所有报文和信号的含义、格式和物理值转换规…

2026/8/24 6:34:16 阅读更多 →
NoC接口设计:片上系统通信协议转换与数据包化的核心技术

NoC接口设计:片上系统通信协议转换与数据包化的核心技术

1. 从“单车道”到“立交桥”:NoC接口为何是片上系统的咽喉要道如果你是从单核处理器时代一路走过来的硬件或系统工程师,可能还记得当年设计SoC(片上系统)时,那种相对“直来直去”的通信方式。CPU核心、内存控制器、各…

2026/8/24 6:34:16 阅读更多 →
音视频开发面试核心考点与实战解析

音视频开发面试核心考点与实战解析

1. 音视频技术面试的核心考察维度互联网大厂对音视频开发岗位的面试通常围绕四个核心维度展开:基础理论深度、工程实践能力、架构设计思维和场景应变能力。我参加过多次头部企业的技术面试,发现面试官往往会从简单的编解码原理切入,逐步深入到…

2026/8/24 6:33:16 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →