C++ and SharpZipLib
C++ and SharpZipLib
我在压缩算法时并不那么精通。
我有一块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列出内容并找出。
相关文章:
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么 Clang 不允许"and"作为函数名称?
- 位阵列上的快速AND运算
- 是否可以在 C++03 中定义'move-and-swap idiom'等效项
- BoostPython and CMake
- OpenSSL BIO and SSL_read
- Gurobi GRBModel and GRBmodel in C++
- std::visit and std::variant usage
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- Directx12 and keystrokes
- different between int **arr =new int [ n]; and int a[i][j]?
- C++ getenv and setenv
- Inference pytorch C++ with alexnet and cv::imread image
- Visual Studio 2019 C++ and std::filesystem
- 保证逻辑 AND 表达式中的函数调用
- python ctypes and C++ pointers
- C++ const char with .begin() and .end()
- Threads with Classes and std::packaged_task
- C++ and SharpZipLib