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(); } } }
壓縮后的目錄結構如下: