0

我有一个 C# 函数,它接收压缩的 ByteArray 作为参数。我需要提取这个 byteArray 并将生成的未压缩 byteArray 发送到另一个函数。我需要帮助提取zipBytesunzippedBytes参阅下面的伪代码:

使用 Zlib.net 的解决方案!

byte[] receiveZipByte (byte[] zipBytes)

{

    MemoryStream oInStream = new MemoryStream(pZFileData);
    ZInputStream oZInstream = new ZInputStream(oInStream);
    MemoryStream oOutStream = new MemoryStream();

    byte[] buffer = new byte[2000];
    int len;
    while ((len = oZInstream.read(buffer, 0, 2000)) > 0)
    {
        oOutStream.Write(buffer, 0, len);
    }

    byte[] pFileData = oOutStream.ToArray();
    oZInstream.Close();
    oOutStream.Close();
   return unzippedBytes;
}
4

1 回答 1

0

如果您要做的是解压缩使用 zlib 压缩的数据,我建议使用 ZLib.NET 库: http: //www.componentace.com/zlib_.NET.htm

这取决于您想对数据做什么;但是,这里有一个使用 DotNetZip 流的示例:

using (var input = new ZipInputStream(new MemoryStream(zipBytes)))
{
    ZipEntry e;
    while ((e = input.GetNextEntry()) != null)
    {
        if (e.IsDirectory) continue;
        using (var output = File.Open(e.FileName, FileMode.Create, FileAccess.ReadWrite))
        {
            while ((n = input.Read(buffer, 0, buffer.Length)) > 0)
            {
                output.Write(buffer, 0, n);
            }
        }
    }
}

于 2013-08-16T20:50:40.457 回答