首页 / 知识
关于c#:Zlib兼容的压缩流?
2023-04-15 19:30:00

Zlib-compatible compression streams?System.IO.Compression.GZipStream或System.IO.Compression.Deflate是否与zlib压缩兼容? 我遇到了有关Git对象的问题。在这种特定情况下,它们将对象存储为带有Zlib标头的缩小的Blob,这在RFC 1950中有说明。您可以通过创建一个包含以下内容的文件来创建兼容的Blob:
我做了自己的Adler实施
就是这样。 DotNetZip包括DeflateStream,ZlibStream和GZipStream,用于处理RFC 1950、1951和1952。所有方法均使用DEFLATE算法,但每个帧和报头字节均不同。 作为优点,DotNetZip中的流不会表现出在压缩情况下扩展数据大小的异常,这是针对内置流进行报告的。另外,没有内置的ZlibStream,而DotNetZip为您提供了与zlib良好的互操作性。 从MSDN上获得有关System.IO.Compression.GZipStream的信息:
从zlib常见问题解答中:
因此,zlib和GZipStream应该可以互操作,但前提是您使用zlib函数来处理gzip格式。 据报道System.IO.Compression.Deflate和zlib不可互操作。 如果您需要处理zip文件(您可能不需要,但是其他人可能需要此文件),则需要使用SharpZipLib或其他第三方库。 我已经使用GZipStream压缩.NET XmlSerializer的输出,并且使用gunzip(在cygwin中),winzip和另一个GZipStream解压缩结果的效果非常好。 供参考,这是我在代码中所做的:
然后,在C#中解压缩
在cygwin中使用'file'实用程序表明,使用GZipStream和GNU GZip压缩的同一文件之间确实存在差异(可能是此线程中其他人提到的标头信息)。但是,这种差异在实践中似乎无关紧要。 gzip是deflate +一些页眉/页脚数据,例如校验和和长度等。因此,它们在某种方法可以使用另一种方法的流的意义上是不兼容的,但是它们采用相同的压缩算法。 他们只是使用zlib或deflate算法压缩数据,但未提供某些特定文件格式的输出。这意味着,如果您将流按原样存储到硬盘驱动器,则很可能将无法使用某些应用程序(gzip或winrar)打开它,因为流中不包含文件头(幻数等),因此您应该自己写。
从.NET Framework 4.5开始, 从该类的MSDN文章中:
我同意安德烈亚斯。您可能无法在外部工具中打开文件,但是如果该工具需要流,则可以使用它。您还可以使用相同的压缩类将文件缩小。 |
最新内容
相关内容
linux自带的压缩命令?
linux自带的压缩命令?,系统,命令,文件,工具,设备,管理,手机,软件,目录,指令,linux打包压缩命令大全等待输入shell指令。其次,在linux命令行中输linux命令打开压缩?
linux命令打开压缩?,系统,命令,工具,管理,电脑,文件,标准,信息,平台,格式,linux压缩解压gz文件命令命令格式:tar -zxvf 压缩文件名.tar.gz。解压缩文件夹命令linux?
压缩文件夹命令linux?,系统,软件,命令,工具,电脑,文件,文件名,格式,选项,目录,Linux中文件的压缩与解压缩命令操作示例集锦在Linux系统中,我们linux加密压缩命令?
linux加密压缩命令?,系统,网络,基础,管理,基础知识,积极,发展,下来,材料,电脑,linux基础知识有哪些1、Linux基础知识:了解Linux操作系统的基本linux系统压缩命令行?
linux系统压缩命令行?,系统,工作,工具,信息,软件,命令,文件,下来,网上,目录,如何在linux下用命令解压rar文件?linux解压命令常用的有: tar:打包linux系统压缩命令行?
linux系统压缩命令行?,系统,工作,工具,信息,软件,命令,文件,下来,网上,目录,如何在linux下用命令解压rar文件?linux解压命令常用的有: tar:打包linux加密压缩命令?
linux加密压缩命令?,系统,网络,基础,管理,基础知识,积极,发展,下来,材料,电脑,linux基础知识有哪些1、Linux基础知识:了解Linux操作系统的基本linux压缩文本的命令?
linux压缩文本的命令?,系统,图片,命令,设备,工具,位置,软件,管理,文件,目录,如何在Linux上使用tar命令解压和压缩文件1、解压 tar.bz2/bzip 归linux命令界面缩小?
linux命令界面缩小?,系统,工具,网站,数字,等级,地址,缩放,信息,统一,异常,linux火狐浏览器网页无法缩放据您所描述的情况来看,这个现象比较接近linux解压缩命令总结?
linux解压缩命令总结?,系统,工具,电脑,文件,命令,名称,基础,软件,信息,项目,linux下如何解压和压缩文件1、linux解压命令常用的有: tar:打包和解linux减压缩包命令?
linux减压缩包命令?,系统,工具,文件,手机,命令,格式,文件名,终端,浏览器,意思,在LINUX下如何将tar压缩文件解压到指定的目录下将tar压缩文件解linux无效对象的命令?
linux无效对象的命令?,软件,系统,单位,网络,管理,术语,检测,电脑,环境,风险,linux疑问:普通用户的ifconfig命令无法执行,如何解决?建议这个操