使用zlib解压缩文件 - 卡在256kb限制

时间:2017-11-03 22:02:42

标签: c# zlib compression

我希望有人能够帮助我解决这个问题。 我要做的是使用ZlibNet在C#中解压缩zlib压缩文件。 (我也尝试了DotNetZipSharpZipLib

我遇到的问题是它只会解压缩前256kb,或者更确切地说是第一个262144字节。 这是我的解压缩方法,取自here

Male_ID

基本上,int(read)在while循环第一次执行时被设置为262144,它写入,然后while循环的下一次传递,read得到0,从而使循环退出并且函数将outStream作为数组返回。 (即使还有剩余的字节需要读取!)

提前感谢任何可以提供帮助的人!

1 个答案:

答案 0 :(得分:0)

在进一步检查最初打包的数据后,发现负责(解压缩)原始应用程序中的数据的脚本会将文件的zlib流分成每个262144字节的块。

这就是我测试的各种库总是停在262144字节的原因 - 它是zlib流的结尾,但不是它应该提取的文件的结尾。 (每个zlib流也由32位unsigned int分隔,表示下一个zlib流将包含的字节数)

我唯一的猜测就是他们这样做,这样如果他们有一个非常大的文件,他们就不需要将所有文件加载到内存中进行解压缩。 (但这只是猜测。)