如何使用ZipPackage创建一个zip

我在MSDN上看到了关于ZipPackage类的文档。

这个例子不是很有用,任何人都可以提供一个关于这个类的例子吗?

这是一个例子,请注意:
– ZipPackage似乎不压缩
– 生成的zip包含一个不需要的文件“[Content_Types] .xml”
– System.IO.Compression,因为.Net 4.5似乎是一个不错的选择

在Visual Studio中,您可以添加对“WindowsBase”的引用(不带“System.IO”这样的前缀。)

using System; using System.Linq; using System.Text; using System.IO.Packaging; using System.IO; namespace TestZip { public static class Program { public static void Main(string[] args) { byte[] data = Encoding.UTF8.GetBytes(String.Join("\n", new string[1000].Select(s => "Something to zip.").ToArray())); byte[] zippedBytes; using(MemoryStream zipStream = new MemoryStream()) { using (Package package = Package.Open(zipStream, FileMode.Create)) { PackagePart document = package.CreatePart(new Uri("/test.txt", UriKind.Relative), ""); using (MemoryStream dataStream = new MemoryStream(data)) { document.GetStream().WriteAll(dataStream); } } zippedBytes = zipStream.ToArray(); } File.WriteAllBytes("test.zip", zippedBytes); } private static void WriteAll(this Stream target, Stream source) { const int bufSize = 0x1000; byte[] buf = new byte[bufSize]; int bytesRead = 0; while ((bytesRead = source.Read(buf, 0, bufSize)) > 0) target.Write(buf, 0, bytesRead); } } } 

看看这个代码项目 –

C#使用没有外部库的Zip存档 。