C# 解压与压缩文件
解压文件 ,引用 SharpZipLib.dll类库
方法一:
public void UnGzipFile(string zipfilename) { //同压缩文件同级同名的非压缩文件路径 var path = zipfilename.Replace(Path.GetFileName(zipfilename), Path.GetFileNameWithoutExtension(zipfilename)); //创建压缩文件的输入流实例 using (GZipInputStream zipFile = new GZipInputStream(File.OpenRead(zipfilename))) { //创建目标文件的流 using (FileStream destFile = new FileStream(path, FileMode.Create)) { int buffersize = 2048;//缓冲区的尺寸,一般是2048的倍数 byte[] FileData = new byte[buffersize];//创建缓冲数据 while (buffersize > 0)//一直读取到文件末尾 { buffersize = zipFile.Read(FileData, 0, buffersize);//读取压缩文件数据 destFile.Write(FileData, 0, buffersize);//写入目标文件 } destFile.Flush(); } } }
方法二:
/// <summary> /// 引用 SharpZipLib.dll /// </summary> /// <param name="zipFilePath">压缩文件</param> /// <param name="filePath">解压文件</param> public void gunZipFile(string zipFilePath, string filePath) { using (Stream inStream = new GZipInputStream(File.OpenRead(zipFilePath))) { using (FileStream outStream = new FileStream(filePath, FileMode.Create)) { byte[] buf = new byte[4096]; StreamUtils.Copy(inStream, outStream, buf); } } }
压缩
/// <summary> /// 压缩文件 /// </summary> /// <param name="filePath">文件路径</param> /// <param name="zipFilePath">压缩后的文件路径</param> public static void gZipFile(string filePath, string zipFilePath) { Stream s = new GZipOutputStream(File.Create(zipFilePath)); FileStream fs = File.OpenRead(filePath); int size; byte[] buf = new byte[4096]; do { size = fs.Read(buf, 0, buf.Length); s.Write(buf, 0, size); } while (size > 0); s.Close(); fs.Close(); }
文章来源:http://walkerqt.blog.51cto.com/1310630/1706239
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2016-08-25 WCF 寄宿Windows以及控制台启动