C#文件操作知识点总结

张开发
2026/4/18 16:31:30 15 分钟阅读

分享文章

C#文件操作知识点总结
一必备引用using System.Io;// 文件操作专属命名空间二核心概念1.路径绝对路径完整的地址比如D:\Test\123.txt相对路径相对于程序运行的文件夹直接写123.txt2.两类操作工具类型类名特点适合场景静态类File / Directory直接用不用 new简单单次操作最常用实例类FileInfo / DirectoryInfo先 new 对象再用多次操作同一个文件三File类操作文件增删改查读写1.使用方法静态方法File.方法名即可2各种文件操作方法1判断文件是否存在bool exists File.Exists(D:\\123.txt); // exists true 存在 / false 不存在2.创建文件File.Create(D:\\123.txt); // 创建空文本文件3.删除文件File.Delete(D:\\123.txt);4.复制文件File.Copy(源文件路径, 新文件路径);5.移动文件File.Move(原路径, 新路径);四Flie文本读写1.写入文本覆盖原有内容File.WriteAllText(D:\\123.Text,我是写入的内容);2.追加文本不覆盖在后面加File.AppendAllText(D:\\123.txt, 我是追加的内容);3.读取全部文本string content File.ReadAllText(D:\\123.txt); Console.WriteLine(content);4.按行读取返回字符串数组string[] lines File.ReadAllLines(D:\\123.txt);string[]返回值是字符串数组数组里的每一个元素对应文件里的一行五Dictionary类操作文件夹专门管文件夹的静态方法1.判断文件夹是否存在bool dirExists Directory.Exists(D:\\TestFolder);2.创建文件夹Directory.CreateDirectory(D:\\TestFolder);3.删除文件夹Directory.Delete(D:\\TestFolder); // 只能删空文件夹 Directory.Delete(D:\\TestFolder, true); // true连里面文件一起删// 方式2递归删除true 删除所有内容包括子目录和文件 Directory.Delete(dirPath, recursive: true);4.获取文件夹里所有文件string[] files Directory.GetFiles(D:\\TestFolder);5.获取文件夹里所有子文件夹string[] dirs Directory.GetDirectories(D:\\TestFolder);六Path类路径工具类1.用途处理路径字符串避免手动拼错2.拼接路径string path Path.Combine(D:, Test, 123.txt); // 结果D:\Test\123.txtPath.Combine的好处自动加正确的分隔符不管你传的片段有没有\它都自动帮你拼对自动处理冗余斜杠比如Path.Combine(D:\Test\, 123.txt)会自动变成D:\Test\123.txt不会出现双斜杠跨平台兼容Windows 用\Linux/macOS 用/Path.Combine会自动用当前系统的正确分隔符写一次代码Windows、Linux 都能用支持任意多个片段Path.Combine(D:, Test, SubFolder, 123.txt)直接拼多层路径不用手动加 N 个\2.获取文件后缀名string ext Path.GetExtension(123.txt); // 结果.txt3.获取文件名string name Path.GetFileName(D:\\123.txt); // 123.txt七流操作大文件读写1.底层原理File类一次性读取它会把文件里的所有字节一次性全部读到内存里存成一个巨大的字符串数组。如果文件很大内存就爆了。Stream类流式读取它是向前移动的。它只在内存里开一个很小的 “缓冲区”Buffer每次只从硬盘读一小段数据到内存处理完后释放掉再去读下一段。它永远不会把整个文件塞进内存。2.用StreamWriter写入using (StreamWriter sw new StreamWriter(D:\\123.txt)) { sw.WriteLine(第一行); sw.WriteLine(第二行); }3.用StreamReader读入using (StreamReader sr new StreamReader(D:\\123.txt)) { string line; while ((line sr.ReadLine()) ! null) { Console.WriteLine(line); } }注意加using会自动关闭文件不用手动释放零基础必用这个写法。八文件操作必加异常处理 try-catch文件操作很容易报错权限不足、文件被占用、路径不存在必须加异常捕获。try { // 你的文件操作代码 File.WriteAllText(123.txt, 测试); } catch (Exception ex) { Console.WriteLine(出错了 ex.Message); }

更多文章