Непонятки с GZipStream
От: HeaveN Россия  
Дата: 21.09.11 14:52
Оценка:
Привет, All!

Не могу понять в чем дело. Есть файл xml, запакованный в gz.
Пытаюсь загрузить его в XmlDocument через FileStream.
Так не работает (отсутствует корневой элемент):

OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
Stream file = ofd.OpenFile();
FileStream decompressed = new FileStream(ofd.FileName + ".tmp", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read);

using (GZipStream gzs = new GZipStream(file, CompressionMode.Decompress))
{
  gzs.CopyTo(decompressed);
  gzs.Close();
}
XmlDocument doc = new XmlDocument();
doc.Load(decompressed);


А так работает:


OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
Stream file = ofd.OpenFile();
FileStream decompressed = new FileStream(ofd.FileName + ".tmp", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read);

using (GZipStream gzs = new GZipStream(file, CompressionMode.Decompress))
{
  gzs.CopyTo(decompressed);
  gzs.Close();
}

decompressed.Close();
decompressed.Dispose();
decompressed = new FileStream(ofd.FileName + ".tmp", FileMode.Open);
XmlDocument doc = new XmlDocument();
doc.Load(decompressed);



В чем может быть проблема первого варианта?
Нет такого закона, что человеку летать нельзя...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.