ZIP 存档格式
7z 存档格式以其令人印象深刻的压缩功能而闻名,是压缩文件和文件夹的通用且流行的选择。它以其文件扩展名“.7z”命名,由于能够在保持数据完整性的同时减小文件大小而被广泛使用。
关于 7Zip 存档信息
7-Zip 是一种流行的开源文件压缩和解压缩实用程序,以其高压缩比和广泛的格式支持而闻名。它不仅可以创建和提取 7z 格式的文件,还可以创建和提取其他几种格式的文件,例如 ZIP 、TAR、GZIP 等。此外,7-Zip 还提供强大的加密选项,使其成为安全压缩、存档和保护数据的多功能工具。
7-Zip 存档文件格式历史信息
7z 格式由 Igor Pavlov 于 1999 年创建。它作为一种开源压缩格式引入,主要侧重于提供高压缩比和强加密。随着时间的推移,它因其在减小文件大小方面的效率以及对各种压缩算法的支持而受到欢迎。
7 ZIP 存档的结构
7z 存档的结构是压缩文件和目录的集合。它们具有组织良好的架构,具有标头和数据流。这种结构允许高效提取特定文件,而无需解压缩整个存档,从而增强了格式的可用性。 7z 存档可以是“可靠的”,并且可以将多个文件合并为单个块,从而获得更好的压缩比。
7Zip 压缩方法
- LZMA(Lempel-Ziv-Markov 链算法): LZMA 以其出色的压缩比而闻名,是 7z 档案的默认压缩算法。
- LZMA2: LZMA 的改进版本,提供更快的压缩和解压缩速度。
- PPMd(部分匹配预测): PPMd 专为文本压缩而设计,可有效压缩文档和基于文本的文件。
- BZip2: 该算法对于有效压缩大文件很有用。
- Deflate: 一种广泛使用的压缩方法,以其压缩比和速度之间的平衡而闻名。
7z 档案提供了这样的压缩方法:
用户可以根据自己的具体需求选择最合适的压缩方式。
7-Zip 存档支持的操作
Aspose.ZIP 支持大多数 7z 档案的合成和提取。它提取可以通过 7-zip 工具组成的大部分档案。编码器组合可能非常混乱 - 这就是为什么 Aspose.ZIP 无法保证解压每个有效的 7z 存档。用户可以使用上述所有方法编写存档并使用强大的 AES 算法对其进行加密。使用 Aspose.ZIP ,您可以将相同的 7z 存档分割 分成多个卷。
7Zip - 内部结构
7z 存档格式中有一个精心设计的内部结构,这对于其效率和多功能性至关重要。了解这种结构可以揭示该格式的卓越功能。 7z 存档的核心是标头元数据,它存储有关存档内容的重要信息。这些标头包括压缩文件和目录的名称和属性、压缩方法以及加密设置等详细信息。该元数据的分层组织允许有效访问存档中的特定文件,而无需解压缩所有内容。
任何压缩格式的核心都是其压缩数据流。对于 7z,这些流保存存档中每个文件和目录的压缩数据。 7z 特别高效的原因在于它能够对各个流应用不同的压缩方法,优化压缩比,同时最大限度地减少处理时间。
7z 存档的目录结构类似于被压缩的原始文件和文件夹的布局。该结构包括目录及其各自文件的层次结构,反映了未压缩数据的组织。它允许在从存档中提取时无缝导航和检索特定文件。
7z 存档可能包含可选的元数据和恢复记录。这些元素提供了附加功能,例如文件注释、时间戳,甚至错误恢复功能。后者尤其有价值,可以通过利用恢复记录来部分或完全修复损坏的档案。
7z 存档和支持的受欢迎程度
7z 档案因其卓越的压缩比和开源特性而获得广泛流行。它们受多个平台支持,包括 Windows、macOS 和 Linux,并且可以使用各种第三方应用程序和库进行操作。因此,7z 格式是寻求高效压缩和安全归档文件和目录的用户的高级选择。
使用 7Z 文件的示例
7Z 存档是一种普遍存在的用于压缩和组织数据的文件格式,这使得它们在各种软件应用程序中至关重要。通过 .NET 进行档案操作使开发人员能够轻松地使用 Zip 文件。在下面的代码示例中,我们将深入研究 7Zip 存档的操作功能,演示如何 在线创建新的 7ZIP 文件 存档并高效解压来自现有文件的文件。这些示例将帮助您利用 此库 的功能在 .NET 项目中无缝管理 7z 存档
Create a 7-Zip Single Entry
In the code example below, we illustrate the process of generating a 7-Zip entry through the utilization of a SevenZipArchive instance.
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(sevenZipFile);
}
}
Create 7-Zip Archive Entries
The SevenZipArchive class offers CreateEntries methods for the recursive addition of files and directories within a specified directory. The subsequent code example illustrates the creation of 7-Zip archive entries using these methods.
using (SevenZipArchive archive = new SevenZipArchive())
{
archive.CreateEntries(dataDir);
archive.Save("SevenZip.7z");
}
7-Zip Encryption Settings
The Aspose.ZIP API features the SevenZipAESEncryptionSettings class, designed to offer settings for AES encryption and decryption in 7z archives. In the code example below, we demonstrate how to configure AES Encryption Settings for your archives.
using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$"))))
{
archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF }));
archive.Save("archive.7z");
}
有关 Zip 档案的其他信息
人们一直在问
1. 7-Zip 中最好的压缩方法是什么?
7-Zip 中的最佳压缩方法取决于您的具体需求。您选择的格式和设置应考虑多种因素,例如要压缩的数据类型、压缩率和速度之间的平衡以及与用于提取压缩文件的工具和软件的兼容性。
2. 7Z 比 zip 更安全吗?
最强大的格式是 7Z,紧随其后的是 ZIP-AES-256。总之,在处理加密文件时,没有实际理由继续使用标准 ZIP 格式。此外,建议在加密存档时使用 强而安全的密码 。
3. 7Z是开源的吗?
是的,7-Zip 是一个开源文件存档器。它根据 GNU 宽通用公共许可证 (LGPL) 分发,这意味着社区可以免费查看、修改和分发其源代码。这种开源性质有助于其作为压缩工具的广泛使用和流行。