流式处理文件时出现问题

本文关键字:问题 文件 处理 | 更新日期: 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属性。