【问题标题】:Decompress bytes using DeflateStream使用 DeflateStream 解压缩字节
【发布时间】:2013-10-27 18:40:08
【问题描述】:

我正在尝试解压缩字节数组。因为我想从 zip 中提取 .png 文件。

我试过了:

var compressedData = ZlibStream.UncompressBuffer(cByteArray);

var uncompressedData = ZlibStream.CompressBuffer(compressedData);   

using(FileStream fs = new FileStream(@"F:\picture.png", FileMode.Create)){

fs.Write(uncompressedData, 0, uncompressedData);
}

但出现以下错误: 坏状态(未知压缩方法(0x5C))

那么任何人都可以帮助我了解如何从数据中获取文件。 压缩数据来自 zip 文件条目。所以标题被排除在外。

【问题讨论】:

    标签: c# zlib unzip deflatestream


    【解决方案1】:

    使用DeflateStream,而不是ZlibStream。前者处理包装在 zip 文件中的原始 deflate 数据。后者处理 zlib 流,即使用 zlib 包装器对数据进行压缩。

    【讨论】:

    • 我尝试使用 System.IO.Compression.DeflateStream 但我不断收到此错误:“解码时发现无效数据。”
    • 那么您没有从 zip 文件中正确提取放气数据。您可以考虑改用 ZipArchive 类,它会为您处理。
    • 现在效果很好!原来我的布局错误我在压缩数据之后而不是在前面读取了额外长度。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多