如何更新ZIP存档中的每个文件?

时间:2018-02-08 08:37:53

标签: c# zip ziparchive system.io.compression

尝试以下操作时,我收到错误"收集已修改;枚举操作可能无法执行。"。如何循环Zip条目并更新它们?

using (ZipArchive archive = ZipFile.Open(@"c:\file.zip",ZipArchiveMode.Update))
{
    foreach (ZipArchiveEntry entry in archive.Entries)
    {
        archive.CreateEntryFromFile(@"c:\file.txt", entry.FullName);
    }
}

1 个答案:

答案 0 :(得分:0)

在枚举时,您无法更新集合。

您可以改为转换为for循环。

for (int i = 0; i < archive.Entries.Count; i++)
{
    archive.CreateEntryFromFile(@"c:\file.txt", archive.Entries[i].FullName);
}

您可能会发现在Enumerators上阅读API参考会很有帮助。

&#34;枚举器可用于读取集合中的数据,但不能用于修改基础集合。&#34;