gpt4 book ai didi

c# - 在 WinRT 中膨胀压缩字节数组

转载 作者:太空宇宙 更新时间:2023-11-03 11:15:05 25 4
gpt4 key购买 nike

我正在尝试将以下代码移植到 WinRT 应用程序:

using (var stream = new InflaterInputStream(new MemoryStream(compressedBytes)))
{
MemoryStream memory = new MemoryStream();
byte[] writeData = new byte[4096];
int resLen;
while ((resLen = stream.Read(writeData, 0, writeData.Length)) > 0)
{
memory.Write(writeData, 0, resLen);
}
uncompressedBytes = memory.ToArray();
}

我正在为它的 InflaterInputStream 类使用 SharpZipLib,但是没有可用的 WinRT 编译(由于 .NET/WinRT 之间的差异太大,我自己重新编译也不是一种选择) .

对于我可以使用哪些 native /第三方功能来实现相同的结果,有人有任何建议吗?

最佳答案

好吧,多亏了 Hans Passant 的评论,我发现使用以下行会产生与使用 InflaterInputStream 相同的结果:

using (DeflateStream stream = new DeflateStream(new MemoryStream(compressedBytes, 2, compressedBytes.Length - 2), CompressionMode.Decompress))

跳过前两个字节的原因是它们是 zlib 规范的一部分,而不是 deflate 规范的一部分:http://george.chiramattel.com/blog/2007/09/deflatestream-block-length-does-not-match.html

关于c# - 在 WinRT 中膨胀压缩字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12894406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com