使用C#DotNetZip提取bytearray变量

使用C#DotNetZip提取bytearray变量,c#,bytearray,dotnetzip,C#,Bytearray,Dotnetzip,我有一个C#函数,它接收一个压缩的ByteArray作为参数。 我需要提取这个byteArray,并将得到的未压缩byteArray发送到另一个函数。 我需要帮助提取zipBytes到unzippedBytes请参见下面的伪代码: 使用Zlib.net解决方案 byte[] receiveZipByte (byte[] zipBytes) { MemoryStream oInStream = new MemoryStream(pZFileData); ZInputStream

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

使用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;
}

如果您试图对使用zlib压缩的数据进行解压缩,我建议您使用zlib.NET库:

这将取决于你想对数据做什么;但是,这里有一个将流与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);
            }
        }
    }
}

DotNetZip处理ZIP文件。压缩后的ByteArray是加载到内存中的文件吗?是的,zipBytes是内存中的ByteArray变量。****“这取决于您对数据的处理方式”****我实际上是在尝试将数据传递到内存中的另一个字节数组变量(无意将数据保存在文件上。DotNetZip提供zip文件功能。这意味着它在一个存档中管理多个压缩文件——这通常意味着写入磁盘。如果您只需要压缩数据,我不建议使用DotNetZip(开销可能很容易超过压缩所提供的)。如果您提供有关您希望实现的目标的更多详细信息,可能会有人提供一些建议。好的,这就是场景。FLEX 3应用程序通过AS3类文件将变量类型byteArray compressed(通过压缩()方法)发送到.NET- C#webservice方法类型[WebMethod]接收byteArray变量;我应该在内存中解压或解压缩该变量,以便将其解压后发送到.NET逻辑中的另一个类。或者…..我有一个C#函数,该函数接收压缩的byteArray作为参数。我需要在内存中提取该byteArray,并将结果解压后的byteArray发送到另一个类nction.FLEX 3 compress()为压缩算法获取了一个参数,不是吗?如果不知道这一点,就很难详细说明能够可靠地对其进行解压缩的代码。