2013-10-11 3 views
0

У меня есть gzipstream, который сжат, и я хочу записать его в файл. Теперь проблема в том, что Read не поддерживается на gzipstream, который сжимается. Ниже мой код, где gzipstream читает stream от memorystream, а затем я хочу записать его в 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); 
     } 
    } 
} 

Любая идея, как я могу создать filestream из сжатого gzipstream?

EDIT:

Это был мой плохой, извините, чтобы тратить свое время. Для дальнейшего использования код выше должен работать, проблема была где-то в другом месте.

+0

Почему вы хотите сжать 'stream', а затем распаковать его? –

+0

По существу мне нужно сжать файл и сохранить его как .gz в моей файловой системе ... –

+0

Тогда почему вы используете 'gzs' с' CompressionMode.Decompress'? –

ответ

0

Кажется, что вы читаете и записываете один и тот же поток памяти. Я не думаю, что это возможно; вы должны использовать два разных потока: один из которых вы читаете, а другой, в который вы пишете:

using (gzipStream = new GZipStream(writeStream,CompressionLevel.Fastest)) 
{ 
    readStream.CopyTo(gzipStream); 
} 
Смежные вопросы