C#内存压缩zip文件
C#中我们使用比较多的文件压缩第三方DLL就是Ionic.Utils.Zip.dll。但是这个DLL只支持对现有文件进行压缩,而不支持内存压缩,如果需要使用内存压缩,那么有第三方DLL ICSharpCode.SharpZipLib.dll。
下面把例子粘出来:
using ICSharpCode.SharpZipLib.BZip2; using ICSharpCode.SharpZipLib.Zip; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var data = Encoding.Default.GetBytes("Hello world"); using (System.IO.FileStream ZipFile = System.IO.File.Create("d:\\abc.zip")) { using (ZipOutputStream ZipStream = new ZipOutputStream(ZipFile)) { //文件1 ZipEntry entry1 = new ZipEntry("地址.txt"); ZipStream.PutNextEntry(entry1); ZipStream.Write(data, 0, data.Length); //文件2 ZipEntry entry2 = new ZipEntry("名称\\地址2.txt");//名称表示文件夹 ZipStream.PutNextEntry(entry2); ZipStream.Write(data, 0, data.Length); } ZipFile.Close(); } Console.WriteLine("success"); Console.ReadLine(); } } }
压缩后的目录结构如下: