试图将zip保存为流

时间:2012-12-15 20:30:41

标签: c# asp.net dotnetzip

我正在尝试将文件流保存到Zip流。

代码:

public static MemoryStream ZipFiles(Dictionary<string, byte[]> files)
{
    var output = new MemoryStream();
    using (var zip = new ZipFile())
    {
        foreach (var file in files)
        {
            var ms = new MemoryStream(file.Value);
            ms.Seek(0, SeekOrigin.Begin);
            zip.AddEntry(file.Key, ms);
            zip.Save(output);
        }
    }
    return output;
}

它正在工作,但现在在第二次循环zip.Save它抛出一个ZipException,消息“无法读取它作为ZipFile”。 InnerException“对象引用未设置为对象的实例”。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

尝试使用下一个代码:

        var output = new MemoryStream();
        using (var zip = new ZipFile())
        {
            foreach (var file in files)
            {
                var ms = new MemoryStream(file.Value);
                ms.Seek(0, SeekOrigin.Begin);
                zip.AddEntry(file.Key, ms);

            }
            zip.Save(output);
        }
        return output;