2013-10-11 114 views
0

我有一個壓縮的gzipstream,我想將它寫入文件。現在問題是壓縮的gzipstream上不支持讀取。下面是我的代碼,其中gzipstream從memorystream中讀取stream,然後我想將它寫入filestream將壓縮的gzipstream寫入文件

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); 
     } 
    } 
} 

任何想法,我怎麼可以創建一個壓縮gzipstream一個filestream

編輯:

這是我的壞,很抱歉浪費你的時間。爲了將來的參考上面的代碼應該工作,問題在別的地方。

+0

你爲什麼要壓縮'stream'然後解壓縮它? –

+0

本質上,我需要壓縮文件並將其作爲.gz存儲在我的文件系統中... –

+0

那麼,爲什麼在'CompressionMode.Decompress'中使用'gzs'? –

回答

0

您似乎正在讀取和寫入相同的內存流。我不認爲這是可能的;你應該使用兩種不同的流:一種是你讀的,另一種是你寫的:

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