C# 替换zip中同名的文件
我有一个代码,可以创建文件或将文件添加到指定的zip存档中。如果我试图添加另一个同名文件,我找不到替换zip文件的选项C# 替换zip中同名的文件,c#,zip,C#,Zip,我有一个代码,可以创建文件或将文件添加到指定的zip存档中。如果我试图添加另一个同名文件,我找不到替换zip文件的选项 private void button1_Click(object sender, EventArgs e) { if (oflFilesToZip.ShowDialog() == DialogResult.OK) { string[] files = oflFilesToZip.FileNames;
private void button1_Click(object sender, EventArgs e)
{
if (oflFilesToZip.ShowDialog() == DialogResult.OK)
{
string[] files = oflFilesToZip.FileNames;
bool zipExists = File.Exists(zipPath);
ZipArchive zip;
if (zipExists)
{
zip = ZipFile.Open(zipPath, ZipArchiveMode.Update);
}
else zip = ZipFile.Open(zipPath, ZipArchiveMode.Create);
foreach (string file in files)
{
zip.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal);
}
zip.Dispose();
}
}
是否有任何方法,或者我是否必须手动打开zip,获取所有条目,并逐个检查我正在添加的文件名是否已存在于zip中?如果已存在具有该名称的条目,则将添加另一个条目:
中已存在具有指定名称(entryName)的项
存档时,将使用相同的名称创建第二个条目
因此,在添加它之前,必须从archieve中删除它
foreach (string file in files)
{
ZipArchiveEntry oldEntry = zip.GetEntry(file);
if(oldEntry != null) oldEntry.Delete();
zip.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal);
}
鉴于Zip文件的性质,我希望删除旧条目并添加新条目。Replace将只是执行这两个操作的助手。