Zip文件中的流为空

时间:2013-07-08 09:23:25

标签: c# dotnetzip

我正在尝试解压缩包含单个txt文件的zip文件。但我必须处理错误的流或其他东西,因为输出是一个空字符串。

content = new StreamReader(ms).ReadToEnd(); // content is ""

我使用DotNetZip开源软件包。知道这里缺少什么吗?

Attachment a = (from x in mail.Attachments.OfType<Attachment>()
   where !string.IsNullOrEmpty(x.Body) || x.RawBytes != null
   select x).FirstOrDefault();

AttachmentName = a.Name;
string AttachmentType = a.Name.Substring(a.Name.Length - 3, 3).ToUpper();

switch (AttachmentType)
{
   case "ZIP":
      MemoryStream ms = new MemoryStream();

      using (ZipFile zip = ZipFile.Read(a.RawBytes))
      {
         foreach (ZipEntry e in zip)
            e.Extract(ms);
      }

      content = new StreamReader(ms).ReadToEnd(); // content is ""
      break;
   default:
      content = new StreamReader(new MemoryStream(a.RawBytes)).ReadToEnd();
   break;

1 个答案:

答案 0 :(得分:3)

过去我遇到过类似的问题,通过设置属性来解决

Position = 0;

在使用流内容之前。