使用System.IO.Packaging生成ZIP文件

我知道通常建议使用DotNetZip或SharpZipLib库来创建.net语言的ZIP文件(在我的例子中是C#),但使用System.IO.Packaging生成ZIP文件并非不可能 。 我认为尝试在C#中开发一个可以执行此操作的例程可能会很好,而无需下载任何外部库。 有没有人有一个方法或方法的好例子,将使用System.IO.Packaging生成一个ZIP文件?

让我谷歌这个为你 – > system.io.packaging + generate + zip

第一个链接http://weblogs.asp.net/jongalloway//creating-zip-archives-in-net-without-an-external-library-like-sharpziplib

 using System; using System.IO; using System.IO.Packaging; namespace ZipSample { class Program { static void Main(string[] args) { AddFileToZip("Output.zip", @"C:\Windows\Notepad.exe"); AddFileToZip("Output.zip", @"C:\Windows\System32\Calc.exe"); } private static void AddFileToZip(string zipFilename, string fileToAdd, CompressionOption compression = CompressionOption.Normal) { using (Package zip = System.IO.Packaging.Package.Open(zipFilename, FileMode.OpenOrCreate)) { string destFilename = ".\\" + Path.GetFileName(fileToAdd); Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative)); if (zip.PartExists(uri)) { zip.DeletePart(uri); } PackagePart part = zip.CreatePart(uri, "", compression); using (FileStream fileStream = new FileStream(fileToAdd, FileMode.Open, FileAccess.Read)) { using (Stream dest = part.GetStream()) { fileStream.CopyTo(dest); } } } } } } 

在.NET Framework 4.5中,您可以使用System.IO.Compression命名空间中的新类。