zip (ICSharpCode.SharpZipLib.dll文件需要下载)
2018-06-17 19:54:55来源:未知 阅读 ()
ZipClass zc=new ZipClass (); zc.ZipDir(@"E:\1\新建文件夹", @"E:\1\新建文件夹.zip", 1);//压缩 zc.UnZip(@"E:\1\新建文件夹.zip",@"E:\1\2222");//解压
cs
1 class ZipClass 2 { 3 public void UnZip(string zipFilePath, string unZipDir) 4 { 5 if (zipFilePath == string.Empty) 6 { 7 throw new Exception("压缩文件不能为空!"); 8 } 9 if (!File.Exists(zipFilePath)) 10 { 11 throw new System.IO.FileNotFoundException("压缩文件不存在!"); 12 } 13 //解压文件夹为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹 14 if (unZipDir == string.Empty) 15 unZipDir = zipFilePath.Replace(Path.GetFileName(zipFilePath), Path.GetFileNameWithoutExtension(zipFilePath)); 16 if (!unZipDir.EndsWith("//")) 17 unZipDir += "//"; 18 if (!Directory.Exists(unZipDir)) 19 Directory.CreateDirectory(unZipDir); 20 21 using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipFilePath))) 22 { 23 24 ZipEntry theEntry; 25 while ((theEntry = s.GetNextEntry()) != null) 26 { 27 string directoryName = Path.GetDirectoryName(theEntry.Name); 28 string fileName = Path.GetFileName(theEntry.Name); 29 if (directoryName.Length > 0) 30 { 31 Directory.CreateDirectory(unZipDir + directoryName); 32 } 33 if (!directoryName.EndsWith("//")) 34 directoryName += "//"; 35 if (fileName != String.Empty) 36 { 37 using (FileStream streamWriter = File.Create(unZipDir + theEntry.Name)) 38 { 39 40 int size = 2048; 41 byte[] data = new byte[2048]; 42 while (true) 43 { 44 size = s.Read(data, 0, data.Length); 45 if (size > 0) 46 { 47 streamWriter.Write(data, 0, size); 48 } 49 else 50 { 51 break; 52 } 53 } 54 } 55 } 56 } 57 } 58 } 59 60 61 62 public static void ZipDir(string sDir, string sZip, ZipOutputStream s) 63 { 64 string[] filenames = Directory.GetFiles(sDir); 65 string[] dirnames = Directory.GetDirectories(sDir); 66 Crc32 crc = new Crc32(); 67 if (s == null) 68 { 69 s = new ZipOutputStream(File.Create(sZip)); 70 s.SetLevel(6); // 0 - store only to 9 - means best compression 71 } 72 73 74 foreach (string file in filenames) 75 fileZipInStream(file, s); 76 77 foreach (string dir in dirnames) 78 ZipDir(dir, "", s); 79 if (sZip != "") 80 { 81 s.Finish(); 82 s.Close(); 83 84 FileInfo fInfo = new FileInfo(sZip); 85 long size = fInfo.Length; 86 //Log.WriteLogD("----------------" + size.ToString()); 87 if (size < 100) 88 File.Delete(sZip); 89 } 90 } 91 92 }
ICSharpCode.SharpZipLib.dll下载地址:http://i.cnblogs.com/Files.aspx
感谢提供此类的朋友
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:序列化、反序列化的版本控制以及序列化、反序列化集合对象
下一篇:Paket 介绍
- C#生成ZIP压缩包 2018-06-17
- VCLZip Pro V3.04 B1 For D7 2008-02-23
- ZipTV v6.8.4 For D4-7 With FullSource 2008-02-23
- ZipTV v7.0.6 For D7 破解版 2008-02-23
- ZipTV v6.3.2 含代码 (解压缩) 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash