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

问题描述 投票:0回答:1

尝试以下操作时,出现错误“集合已修改;枚举操作可能无法执行。”。如何循环遍历 Zip 条目并更新它们?

using (ZipArchive archive = ZipFile.Open(@"c:\file.zip",ZipArchiveMode.Update))
{
    foreach (ZipArchiveEntry entry in archive.Entries)
    {
        archive.CreateEntryFromFile(@"c:\file.txt", entry.FullName);
    }
}
c# zip system.io.compression c#-ziparchive
1个回答
0
投票

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

您可以转换为 for 循环。

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

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

“枚举器可用于读取集合中的数据,但不能用于修改底层集合。”

© www.soinside.com 2019 - 2024. All rights reserved.