Create ZIP in C#

ZIP档案简介

ZIP档案 是将一个或多个文件或文件夹压缩和整合为一个单一容器的必要格式。这种格式不仅减少了存储和传输的文件大小,还保留了元数据,使文件管理更为便捷。ZIP档案广泛应用于桌面和网络应用程序中,用于上传、下载、共享以及通过加密保护文件。

在本文中,我们将探讨在C#中以编程方式创建ZIP档案的各种方法。您将学习如何:

C# ZIP库

Aspose.ZIP for .NET 是一个强大的API,旨在在.NET应用程序中压缩和解压缩文件和文件夹。它提供AES加密等功能来保护您在ZIP档案中的文件。您可以轻松地从NuGet安装该API或从下载部分下载二进制文件。

在C#中创建ZIP档案

要将文件压缩为ZIP档案,请按照以下步骤操作:

  1. 为输出ZIP档案创建一个FileStream对象。
  2. 使用_FileStream_对象打开源文件。
  3. 实例化Archive类。
  4. 使用Archive.CreateEntry(string, FileStream)方法将文件添加到档案中。
  5. 使用Archive.Save(FileStream)方法保存ZIP档案。

以下是一个代码示例,演示如何使用C#将文件添加到ZIP档案中:

在C#中向ZIP档案添加多个文件

要向ZIP档案添加多个文件,您可以选择以下方法之一:

使用FileStream

利用_FileStream_类通过Archive.CreateEntry(String, FileStream)方法向ZIP档案添加多个文件。操作如下:

使用FileInfo

或者,您可以使用FileInfo类来添加文件。该方法使用_FileInfo_类加载文件,并通过Archive.CreateEntry(String, FileInfo)方法将其添加到ZIP档案中。请参见下面的示例:

使用文件路径

您还可以通过将文件路径提供给Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings)方法,直接添加文件。操作如下:

在C#中向ZIP档案添加文件夹

将文件夹添加到ZIP档案是包含多个文件的便捷方法。要在C#中压缩文件夹,请按照以下步骤操作:

  1. 为输出ZIP档案创建一个FileStream对象。
  2. 实例化Archive类。
  3. 使用DirectoryInfo类指定要压缩的文件夹。
  4. 使用Archive.CreateEntries(DirectoryInfo)方法将文件夹添加到ZIP中。
  5. 使用Archive.Save(FileStream)方法保存ZIP档案。

以下是一个代码示例,演示如何在C#中将文件夹添加到ZIP档案:

使用ZipCrypto在C#中创建密码保护的ZIP档案

为了增强安全性,您可以使用ZipCrypto加密创建密码保护的ZIP档案。这通过在Archive的构造函数中使用ArchiveEntrySettings类来实现,允许您指定加密类型。

以下是一个示例,演示如何使用ZipCrypto在C#中创建密码保护的ZIP档案:

使用AES加密创建密码保护的ZIP

Aspose.ZIP for .NET库还支持AES加密以保护ZIP档案。您可以选择以下AES加密方法:

  • AES128
  • AES192
  • AES256

要应用AES加密,请使用AesEcryptionSettings类。以下是如何在C#中创建具有AES加密的密码保护ZIP的示例:

设置并行压缩模式

对于涉及多个条目的情况,您可以使用ParallelOptions类配置API以进行并行压缩。Aspose.ZIP for .NET提供了几种并行压缩模式:

  • Never - 不进行并行压缩。
  • Always - 始终进行并行压缩(注意内存不足的问题)。
  • Auto - 根据条目自动决定是否使用并行压缩。

以下是一个示例,演示如何在压缩多个文件时设置并行压缩模式:

了解更多关于C# .NET ZIP库的信息

通过以下资源深入了解我们的C# ZIP API:

在线尝试ZIP档案

探索我们的免费在线应用程序,基于Aspose.ZIP for .NET,轻松将文件压缩为ZIP档案。

结论

在本文中,您学习了如何以编程方式创建ZIP档案。提供的代码示例演示了如何向ZIP档案添加文件和文件夹。此外,我们还介绍了如何使用ZipCrypto和AES加密方法创建密码保护的ZIP档案。我们还讨论了并行压缩以高效处理大文件。如果您有任何问题或需要进一步的帮助,请随时通过我们的论坛与我们联系。

另见

使用C#解压或提取文件使用C#解压ZIP档案中的文件在C# .NET中创建7z(7-Zip)档案
在C# .NET中打开或提取7z(7zip)文件使用C#创建和提取GZip档案将RAR文件转换为ZIP档案
将ZIP档案转换为TAR在C#中创建平面ZIP档案在C#中创建可执行自解压档案
在C#中创建TAR.GZ和TAR.XZ文件在C#中删除ZIP档案中的文件在C#中提取嵌套ZIP档案
在C#中合并多个ZIP或TAR档案如何创建ZIP文件在线提取7z