流式处理文件时出现问题
本文关键字:问题 文件 处理 | 更新日期: 2023-09-27 18:27:25
我正在读取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);
}
}
我正计划将这些zip流保存到一个新的FileStream中但当我验证流时
if (stream.Length == 0)
throw new ArgumentException("stream");
using (var newFile = new FileStream(fullName, FileMode.Create))
{
stream.CopyTo(newFile);
}
我得到了例外,因为stream.lengt等于0
我想知道是否有更好的方法来做这件事,或者为什么这个流不能工作
ZIP文件并不总是将其长度保存到自身,因此length属性无法工作。试试流。CanRead属性。