C#-文件操作的一些常用函数及压缩文件
1.判断目录或文件是否存在(using System.IO;):
1 2 | Directory.Exists(path); //目录是否存在 File.Exists(filePath);/文件是否存在 |
2.创建或删除-目录或文件:
1 2 3 4 5 | Directory.CreateDirectory(path); //创建目录 Directory.Delete(path); //删除目录 File.Create(path); //创建文件 File.Delete(path); //删除文件 StreamWriter sw = new StreamWriter(path, true ); //true表示追加,false表示覆盖,文件不存在则创建 |
3.获取目录下所有子目录 或 截取文件路径:
1 2 3 4 | string [] dirs = Directory.GetDirectories(dirPath); string str = Path.GetDirectoryName(filePath); //获取文件路径中的目录路径部分 string str = Path.GetFileName(filePath); //获取文件路径中的文件名称 string str = Path.GetFileNameWithoutExtension(filePath); //获取文件路径中文件名称(不包括后缀名) |
4.获取目录下所有文件或指定后缀文件:
1 2 | string [] files = Directory.GetFiles(path); string [] files = Directory.GetFiles(path, "*.txt" ); |
5.使用遍历获取目录下所有文件:

1 void GetAllFiles(string root) 2 { 3 string[] dirs = Directory.GetDirectories(root); 4 string[] files = Directory.GetFiles(root); 5 foreach (string f in files) 6 { 7 FileInfo file = new FileInfo(f); 8 Console.WriteLine(f + " " + file.CreationTime + " " + file.Length + "B"); 9 } 10 foreach (string d in dirs) 11 GetAllFiles(d); 12 }
6.使用遍历由内而外删除目录下所有文件及目录:

1 void DeleteAllFiles(string root) 2 { 3 DirectoryInfo folder = new DirectoryInfo(root); 4 FileInfo[] files = folder.GetFiles(); 5 DirectoryInfo[] childFolders = folder.GetDirectories(); 6 foreach (DirectoryInfo chldFolder in childFolders) 7 DeleteAllFiles(chldFolder.FullName); 8 foreach (DirectoryInfo chldFolder in childFolders) 9 { 10 chldFolder.Delete(); 11 Console.WriteLine("Delete Folder:" + chldFolder.FullName); 12 } 13 foreach (FileInfo f in files) 14 { 15 f.Delete(); 16 Console.WriteLine("Delete Files:" + f.FullName); 17 } 18 }
7.将数据写入到文件,若不存在则创建文件:

1 using (FileStream fs = new FileStream(path + file, FileMode.Append, FileAccess.Write)) 2 { 3 using (StreamWriter sw = new StreamWriter(fs)) 4 { 5 sw.WriteLine("123"); 6 sw.Flush(); 7 sw.Close(); 8 File.Copy(path + file, path + copy, true); 9 } 10 fs.Close(); 11 }
8.读取文件数据:

1 using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read)) 2 { 3 using (StreamReader sr = new StreamReader(fs)) 4 { 5 while (true) 6 { 7 string line = sr.ReadLine(); 8 if (line == null) 9 break; 10 Console.WriteLine(f + ":" + line); 11 } 12 sr.Close(); 13 } 14 fs.Close(); 15 }
若文件中存在汉字,添加下面参数:
1 2 | StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding( "gb2312" )); //StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("utf-8")); |
9.压缩目录文件夹(using System.IO.Compression):
1 | ZipFile.CreateFromDirectory(oldPath, zipPath, CompressionLevel.Optimal, true ); |
10.解压压缩包:
1 | ZipFile.ExtractToDirectory(zipPath, "D:\\test" ); |
11.向压缩包追加文件:
1 2 3 4 5 | using (FileStream fs = new FileStream(zipPath, FileMode.Open)) { using (ZipArchive arch = new ZipArchive(fs, ZipArchiveMode.Update)) arch.CreateEntryFromFile(file, Path.GetFileName(file)); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)