问题流媒体文件

时间:2012-03-09 11:56:58

标签: c# stream zipfile

我正在阅读ZipFolder中的文件

var zipFile = new ZipFile(file);
foreach (ZipEntry zipEntry in zipFile)
{
    if (!zipEntry.IsFile)
    {
        continue;  // Ignore directories
    }

    var entryFileName = zipEntry.Name.ToLower();
    var zipStream = zipFile.GetInputStream(zipEntry);

    else if(entryFileName.EndsWith(".png"))
    {
        previews.Add(entryFileName, zipStream);                    
    }
    else
    {
        documents.Add(entryFileName, zipStream);                    
    }
}

我计划将这些zipstream保存到新的FileStream中 但是当我验证流

if (stream.Length == 0)
    throw new ArgumentException("stream");

using (var newFile = new FileStream(fullName, FileMode.Create))
{
    stream.CopyTo(newFile);
}  

我得到了异常,因为stream.lengt等于0

我想知道是否有更好的方法来执行此操作或为什么此流不起作用

1 个答案:

答案 0 :(得分:2)

ZIP文件并不总是将它们的长度保存给自己,因此Length属性不起作用。试试stream.CanRead属性。