我喜欢压缩在我的Web应用程序中动态创建的多个文件.这些文件应该压缩.为此,我不想使用任何第三方工具.就像在c#中使用.net api一样
在.NET 3.0+中使用System.IO.Packaging.
请参阅System.IO.Packaging的这个简介
如果你能够采用.NET 4.5依赖,那么宇宙中就有一个System.IO.Compression.ZipArchive ; 请参阅此处的演练文章(通过InfoQ新闻摘要文章)
随着.NET Framework 4.5的发布,现在通过添加ZipFile类的System.IO.Compression更新实际上要容易得多.在codeguru上有一个很好的演练 ; 但是,基础知识符合以下示例:
using System.Collections.Generic; using System.IO; using System.IO.Compression; using System.IO.Compression.FileSystem; namespace ZipFileCreator { public static class ZipFileCreator { ////// Create a ZIP file of the files provided. /// /// The full path and name to store the ZIP file at. /// The list of files to be added. public static void CreateZipFile(string fileName, IEnumerablefiles) { // Create and open a new ZIP file var zip = ZipFile.Open(fileName, ZipArchiveMode.Create); foreach (var file in files) { // Add the entry for each file zip.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal); } // Dispose of the object when we are done zip.Dispose(); } } }
我不确定你不想使用第三方工具是什么意思,但我认为你不希望一些讨厌的互操作以编程方式通过另一个软件来实现.
我建议使用ICSharpCode SharpZipLib
这可以作为参考DLL添加到您的项目中,并且可以非常简单地创建ZIP文件并阅读它们.