将压缩的gzipstream写入文件

时间:2013-10-11 09:26:15

标签: c# .net gzipstream

我有一个gzipstream被压缩,我想将它写入文件。现在的问题是压缩的gzipstream不支持Read。以下是我的代码,其中gzipstream从stream读取memorystream,然后我想将其写入filestream

using (var stream = new MemoryStream())
{
    using (FileStream file = new FileStream(@"c:\newest.xml.gz", 
        FileMode.Create, FileAccess.Write))
    {
        using (GZipStream gzs = new GZipStream(file, CompressionLevel.Fastest))
        {
            stream.CopyTo(gzs);
        }
    }  
} 

知道如何从压缩的filestream创建gzipstream吗?

编辑:

这是我的坏事,抱歉浪费你的时间。为了将来参考,上面的代码应该可行,问题出在其他地方。

1 个答案:

答案 0 :(得分:0)

您似乎在阅读和编写相同的内存流。我不认为这是可能的;你应该使用两个不同的流:一个是你读过的,另一个是你写的:

using (gzipStream = new GZipStream(writeStream,CompressionLevel.Fastest))
{
    readStream.CopyTo(gzipStream);
}