Проблемы с потоковой передачей файлов - PullRequest
0 голосов
/ 09 марта 2012

я читал файлы внутри 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 Ответ

2 голосов
/ 09 марта 2012

ZIP-файлы не всегда сохраняют свою длину, поэтому свойство Length не может работать.Попробуйте свойство stream.CanRead.

...