![](/img/trans.png)
[英]C# with SharpZipLib - Compatibility of SharpZipLib with Winzip and XP?
[英]C++ and 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
我是否可以正确地假设任何处理zip压缩的c ++库都使用该算法并且与C#版本兼容?
实际上,由库作者决定他们支持什么,尽管由于DEFLATE的广泛使用, 应该在几乎所有压缩库中实现。 但是,并非所有库都与SharpZipLib兼容,因为不同的程序员对如何最好地组织其代码会有不同的想法。
3级压缩是zip标准还是C#lib独有的?
它是标准的一部分。
4 - The file is Reduced with compression factor 3
基本上,寻找并将代码库实现到我的代码中时,我需要注意什么?
确保该库支持您要使用的任何压缩方法,确保该API对您有意义,并尝试查找所使用库的基准以查看其速度。 例如,如果您需要对zip数据进行处理而不是对磁盘进行读写,那么请确保该库可以写入流或字节缓冲区以通过网络发送。
链接到ZIP规范。
压缩级别是在压缩时速度与压缩比之间的权衡。 它与解压缩器解压缩的能力无关。
您的zip文件很可能包含放气的条目。 您可以使用任何解压缩程序列出内容并查找。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.