0

ファイルのストリームを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で2回目のループが発生しました。保存すると、「ZipFileとして読み取ることができません」というメッセージが表示されたZipExceptionがスローされます。InnerException"オブジェクト参照がオブジェクトのインスタンスに設定されていません"。

どんな助けでも素晴らしいでしょう。

4

1 に答える 1

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;
于 2012-12-15T20:41:19.440 に答える