Как конвертировать MemoryStream в FileStream? - PullRequest
3 голосов
/ 23 декабря 2010

это работа:

using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipFile)))
{
  ZipEntry theEntry;
  while ((theEntry = s.GetNextEntry()) != null)
  {
  }
}

не работает, поток памяти

using (ZipInputStream s = new ZipInputStream(memorystream))
{
    ZipEntry theEntry;
    while ((theEntry = s.GetNextEntry()) != null)//Exception **EOF in header**
    {
    }
}

как конвертировать?

Ответы [ 2 ]

13 голосов
/ 23 декабря 2010

Не зная больше о ZipInputStream, который вы используете, единственное предположение, которое я могу подвергнуть опасности, заключается в том, что он пытается использовать MemoryStream, который вы передаете, до того, как позиция этого потока была сброшена в начало. Попробуйте добавить эту строку перед фрагментом кода:

memoryStream.Seek(0, SeekOrigin.Begin);
2 голосов
/ 01 августа 2012
FileStream fs = new Filestream();

Звонок на new Filestream(); неправильный.FileStream не имеет конструкторов, которые принимают нулевые аргументы.

...