王朝网络
分享
 
 
 

Lib.dll文件压缩和解压功能类整理,上传文件或下载文件很常用

王朝学院·作者佚名  2016-05-20  
宽屏版  字体: |||超大  

C# ICSharpCode.SharpZipLib.dll文件压缩和解压功能类整理,上传文件或下载文件很常用工作中我们很多时候需要进行对文件进行压缩,比较通用的压缩的dll就是ICSharpCode.SharpZipLib.dll,废话不多了,网上也有很多的资料,我将其最常用的两个函数整理了一下,提供了一个通用的类,这样在工作中可以快速的完成压缩和解压缩的动作哦

官网下载地址:http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx

1. 在项目中添加对ICSharpCode.SharpZipLib.dll的引用;

2. 在需要使用到ICSharpCode.SharpZipLib中定义的类的编码界面中将其导入(Imports)

1 using ICSharpCode.SharpZipLib.Zip; 2 using System; 3 using System.IO; 4 5 namespace ZTO.WayBill.Utilities 6 { 7 /// <summary> 8 /// 压缩类 9 /// http://www.cnblogs.com/kissdodog/p/3525295.html 10 11 /// </summary>12 public class ZipHelper13 {14 /// <summary>15 /// 压缩文件夹16 /// </summary>17 /// <param name="source">源目录</param>18 /// <param name="s">ZipOutputStream对象</param>19 public static void ComPRess(string source, ZipOutputStream s)20 {21 string[] filenames = Directory.GetFileSystemEntries(source);22 foreach (string file in filenames)23 {24 if (Directory.Exists(file))25 {26 // 递归压缩子文件夹27 Compress(file, s);28 }29 else30 {31 using (FileStream fs = File.OpenRead(file))32 {33 byte[] buffer = new byte[4 * 1024];34 // 此处去掉盘符,如D:\123\1.txt 去掉D:35 ZipEntry entry = new ZipEntry(file.Replace(Path.GetPathRoot(file), ""));36 entry.DateTime = DateTime.Now;37 s.PutNextEntry(entry);38 int sourceBytes;39 do40 {41 sourceBytes = fs.Read(buffer, 0, buffer.Length);42 s.Write(buffer, 0, sourceBytes);43 } while (sourceBytes > 0);44 }45 }46 }47 }48 49 /// <summary>50 /// 解压缩51 /// </summary>52 /// <param name="sourceFile">压缩包完整路径地址</param>53 /// <param name="targetPath">解压路径是哪里</param>54 /// <returns></returns>55 public static bool Decompress(string sourceFile, string targetPath)56 {57 if (!File.Exists(sourceFile))58 {59 throw new FileNotFoundException(string.Format("未能找到文件 '{0}' ", sourceFile));60 }61 if (!Directory.Exists(targetPath))62 {63 Directory.CreateDirectory(targetPath);64 }65 using (var s = new ZipInputStream(File.OpenRead(sourceFile)))66 {67 ZipEntry theEntry;68 while ((theEntry = s.GetNextEntry()) != null)69 {70 if (theEntry.IsDirectory)71 {72 continue;73 }74 string directorName = Path.Combine(targetPath, Path.GetDirectoryName(theEntry.Name));75 string fileName = Path.Combine(directorName, Path.GetFileName(theEntry.Name));76 if (!Directory.Exists(directorName))77 {78 Directory.CreateDirectory(directorName);79 }80 if (!String.IsNullOrEmpty(fileName))81 {82 using (FileStream streamWriter = File.Create(fileName))83 {84 int size = 4096;85 byte[] data = new byte[size];86 while (size > 0)87 {88 streamWriter.Write(data, 0, size);89 size = s.Read(data, 0, data.Length);90 }91 }92 }93 }94 }95 return true;96 }97 }98 }

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有