Solid Compression
Posted 9reyson
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solid Compression相关的知识,希望对你有一定的参考价值。
定义
Solid Compression是一种多文件的数据压缩方式,其中所有未被压缩的文件是一个整体,视为一个独立的data block。这样的文件称为solid archive。7z、RAR压缩格式和tar-based格式都支持Solid Compression。但是ZIP压缩不支持,因为ZIP存储分立的压缩文件。
概念解释
文件压缩格式通常包括:压缩(compression)和打包(archiving)。对于多文件的情况,可以用两种不同的方式组合压缩和打包过程:
1. 先单独压缩每个文件,然后打包成一个独立的文件
2. 先打包成一个独立的文件,然后再进行压缩(Solid Compression)
ZIP可以使用第1种方式实现Solid Compression的效果。在Unix中,压缩和打包是两个分立的过程,以下是一个例子:
- compressing individual files and then archiving would be a tar of gzip’ed files – this is very uncommon, while
- archiving via tar and then compressing yields a compressed archive: a .tar.gz – and this is solid compression.
Solid Compression的优缺点
优点
- 对于所有文件都很相似的情况(相同的文件格式等),Solid Compression的压缩率更高
- 打包很多小文件时更加高效
缺点
- 使用Solid Compression后,如果要从压缩包中提取出某一个文件,则需要处理所有的文件才能实现。因此,修改Solid Archive会比较慢和不方便。但是最新版的7-zip中可以设置solid block size,修改压缩文件相对比较简单。
- 使用Solid Compression,一旦压缩文件有一点损坏,可能导致压缩包里面的所有文件都无法使用。
参考资料
以上是关于Solid Compression的主要内容,如果未能解决你的问题,请参考以下文章
如何找到 Parquet 文件生成时使用的 COMPRESSION_CODEC?
ZipFile (System.IO.Compression)、c# (WPF) 的字符提取问题
我没有在“System.IO.Compression”命名空间中找到“ZipFile”类