当谈到压缩算法时,我并不十分精通。C++和SharpZipLib
我有一段C#代码,它使用前面提到的库来压缩和解压缩大块数据。它使用压缩级别3,但除此之外,这是最基本的实现。
我现在想要使用C++来处理数据。由于它是一种zip格式,我们正在讨论deflate算法,对吧?
我正确地认为任何处理zip压缩的C++库都使用该算法,并且它与C#版本兼容吗? 3级压缩是一个zip标准,还是C#lib特有的东西?
基本上,在寻找和实现库到我的代码中时,我需要注意什么,如果有的话?
当谈到压缩算法时,我并不十分精通。C++和SharpZipLib
我有一段C#代码,它使用前面提到的库来压缩和解压缩大块数据。它使用压缩级别3,但除此之外,这是最基本的实现。
我现在想要使用C++来处理数据。由于它是一种zip格式,我们正在讨论deflate算法,对吧?
我正确地认为任何处理zip压缩的C++库都使用该算法,并且它与C#版本兼容吗? 3级压缩是一个zip标准,还是C#lib特有的东西?
基本上,在寻找和实现库到我的代码中时,我需要注意什么,如果有的话?
既然是zip格式,我们正在谈论deflate算法吧?
并非所有的.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
我是正确的假设,任何C++库,与ZIP压缩涉及使用该算法,它是用C#版本兼容?
这真的取决于图书馆的作者来决定他们支持一下,虽然DEFLATE 应该几乎在每一个压缩库来实现,由于其广泛使用。尽管不是所有的库都与SharpZipLib兼容,因为不同的程序员对于如何最好地组织他们的代码会有不同的想法。
3级压缩是压缩标准还是C#lib独有的东西?
它是标准的一部分。
4 - The file is Reduced with compression factor 3
基本上,我有什么看出来的,如果有的话,寻找和实现库到我的代码是什么时候?
确保库支持您要使用的任何压缩方法,确保API对你有意义的,并试图找到正在使用的库的基准来看看它是多么快。例如,如果您需要使用zip数据而不是读取和写入磁盘,那么确保该库可以写入流或字节缓冲区以便通过网络进行发送。
Link符合ZIP规范。
压缩等级是在压缩时选择的速度与压缩比的权衡。它对解压缩器解压缩的能力没有任何影响。
很有可能您的zip文件包含压缩条目。您可以使用任何解压缩程序列出内容并找出。