在上一篇文章中,我讨论了使用C#创建ZIP档案的不同方法。本文还介绍了如何创建加密和受密码保护的 ZIP 档案。除了ZIP格式,还有其他一些常用的存档格式,如7z、tar、RAR等,其中7z存档格式是基于开源架构的,用于压缩文件和文件夹的压缩率很高。它还支持 256 位 AES 加密并允许对文件名进行加密。在本文中,我将演示如何使用 C# 以编程方式创建 7z (7-Zip) 档案。
本文分为以下几个部分:
本文中的所有步骤和代码示例均基于Aspose.ZIP for .NET。因此,请确保您已使用以下任一方法安装 API:
- 使用NuGet 包管理器安装。
- 下载DLL 并将其引用添加到项目中。
使用 C# 创建 7z (7-Zip) 档案
将文件压缩为 7z 存档可能有两种可能的情况。要么你只有一个文件,要么可能有一堆文件要压缩。您可以明确处理这两种情况。
使用单个条目创建 7z 存档
以下是使用单个条目创建 7z 存档的步骤。
- 打开一个新的FileStream以创建一个 7z 文件。
- 创建SevenZipArchive类的实例。
- 使用SevenZipArchive.CreateEntry(String, String, Boolean, SevenZipEntrySettings)方法将文件添加到存档中。
- 使用SevenZipArchive.Save(Stream)方法创建和保存存档。
以下代码示例展示了如何使用 C# 创建 7z (7-Zip) 存档。
创建具有多个条目的 7z 存档
在这种情况下,您可以将文件放在一个文件夹中,并将文件夹的路径传递给SevenZipArchive.CreateEntries()方法。以下是将多个文件条目添加到 7z 存档的步骤。
- 创建SevenZipArchive类的实例。
- 将文件夹的路径传递给SevenZipArchive.CreateEntries(String, Boolean)方法。
- 调用SevenZipArchive.Save(String)方法。
以下代码示例展示了如何使用 C# 创建具有多个条目的 7z 存档。
使用 C# 创建 AES 加密的 7z 存档
7z 格式支持 AES 加密以保护文件。为了加密 7z 文件,使用SevenZipAESEncryptionSettings类。以下代码示例展示了如何使用 C# 创建 AES 加密的 7z 存档。
使用 C# 为 7z 条目设置不同的密码
7z 格式还允许您为每个文件条目指定不同的密码。例如,如果您要压缩 7z 存档中的两个文件,您可以为每个文件指定不同的密码。以下是为 7z 条目设置不同密码的步骤。
- 为 7z 存档文件创建一个新的FileStream。
- 使用FileInfo类访问每个文件条目。
- 创建SevenZipArchive类的实例。
- 使用SevenZipArchive.CreateEntry(String, FileInfo, Boolean, SevenZipEntrySettings)创建进入 7z 存档的条目
- 使用SevenZipArchive.Save(Stream)方法保存存档。
以下代码示例显示了如何为 7z 存档中的每个条目设置密码。
结论
在本文中,我们学习了如何使用 C# 以编程方式创建 7z 档案。此外,我们已经看到了如何创建 AES 加密的 7z 文件并为每个文件条目设置密码。您可以从此处了解有关文件压缩/解压缩的更多信息。