如何在C#中解压缩内存流中的数据

时间:2016-06-29 03:37:32

标签: c# memorystream compression deflate

我正在尝试解压缩压缩的base64编码字符串但不知道如何执行此操作。它不是一个gzip,我试图解压缩它而不必写入文件。

1 个答案:

答案 0 :(得分:0)

尝试了来自Unzip a memorystream (Contains the zip file) and get the files的建议,并最终找到了一个可以使用它作为方法进行一些更改的建议。

public static string DecompressData(string val)
    {
        byte[] bytes = Convert.FromBase64String(val).ToArray();
        Stream data = new MemoryStream(bytes);
        Stream unzippedEntryStream;  
        MemoryStream ms = new MemoryStream();
        ZipArchive archive = new ZipArchive(data);
        foreach (ZipArchiveEntry entry in archive.Entries)
        {
            unzippedEntryStream = entry.Open();
            unzippedEntryStream.CopyTo(ms);  
        }

        string result = Encoding.UTF8.GetString(ms.ToArray());
        return result;
    }