如何将MemoryStream转换为FileStream?

时间:2010-12-22 21:21:11

标签: c# filestream memorystream

正在工作:

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

无效,memorystream

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

如何转换?

2 个答案:

答案 0 :(得分:13)

在不了解您正在使用的ZipInputStream的情况下,唯一可以冒险的猜测是,它尝试使用您传递的MemoryStream,之后该流的位置已重置为开始。尝试在代码段之前添加此行:

memoryStream.Seek(0, SeekOrigin.Begin);

答案 1 :(得分:2)

FileStream fs = new Filestream();

new Filestream();的调用不正确。 FileStream没有任何带零参数的构造函数。