C++ and SharpZipLib

C++ and SharpZipLib

本文关键字:SharpZipLib and C++      更新时间:2023-10-16

我在压缩算法时并不那么精通。

我有一块C#代码,该代码使用上述库来组合并取消大量数据。它使用压缩级别3,但除此之外,它是最基本的实现。

我现在想使用C 对该数据进行相同的操作。既然是邮政编码,我们正在谈论放气算法,对吗?

我是否正确地假设任何处理ZIP压缩的C 库都使用该算法,并且它与C#版本兼容?3级压缩是ZIP标准,还是C#lib独有的?

基本上,在寻找和实现库中时,我必须注意什么(如果有的话(?

由于它是邮政编码,我们正在谈论放气算法,对吗?

并非所有.zip文件都使用Deflate算法。ZIP规范列出了它支持的大量不同压缩方法:

4.4.5 compression method: (2 bytes)
    0 - The file is stored (no compression)
    1 - The file is Shrunk
    2 - The file is Reduced with compression factor 1
    3 - The file is Reduced with compression factor 2
    4 - The file is Reduced with compression factor 3
    5 - The file is Reduced with compression factor 4
    6 - The file is Imploded
    7 - Reserved for Tokenizing compression algorithm
    8 - The file is Deflated
    9 - Enhanced Deflating using Deflate64(tm)
   10 - PKWARE Data Compression Library Imploding (old IBM TERSE)
   11 - Reserved by PKWARE
   12 - File is compressed using BZIP2 algorithm
   13 - Reserved by PKWARE
   14 - LZMA (EFS)
   15 - Reserved by PKWARE
   16 - Reserved by PKWARE
   17 - Reserved by PKWARE
   18 - File is compressed using IBM TERSE (new)
   19 - IBM LZ77 z Architecture (PFS)
   97 - WavPack compressed data
   98 - PPMd version I, Rev 1

我是否正确地假设任何处理ZIP压缩的C 库都使用该算法,并且它与C#版本兼容?

尽管库作者的支持确实取决于图书馆的作者,尽管由于其广泛使用,因此在几乎每个压缩库中都应在每个压缩库中实现。并非所有库都与Sharpziplib兼容,因为不同的程序员将对如何最好地组织其代码有不同的想法。

3级压缩是邮政编码标准,还是c#lib独有的东西?

它是标准的一部分。

    4 - The file is Reduced with compression factor 3

基本上,在寻找并将库中实施到我的代码中时,我必须注意什么(如果有的话(?

确保库支持您要使用的任何压缩方法,请确保API对您有意义,并尝试找到用于查看其速度的库的基准。如果您需要使用读取和写入磁盘以外的ZIP数据进行工作,请确保库可以写入流或字节缓冲区以通过网络发送。

链接到ZIP规范。

压缩水平是在压缩时选择的速度和压缩比的权衡。它对解压缩器解压缩的能力没有任何影响。

您的zip文件很有可能包含放气条目。您可以使用任何Unzipper列出内容并找出。