我正在阅读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
我想知道是否有更好的方法来执行此操作或为什么此流不起作用
答案 0 :(得分:2)
ZIP文件并不总是将它们的长度保存给自己,因此Length属性不起作用。试试stream.CanRead属性。