Внутри ZipEntry есть открытая функция, которая очищает имя для вас. "ZipEntry.CleanName (yourstring)". Сделайте этот вызов, когда вы одновременно добавляете свою запись И пытаетесь удалить ее. примечание: Если вы используете это для путей к файлам, он будет правильно интерпретировать путь в zip-файле, даже если функция CleanName заменяет «\» на «/»
**
ДОБАВЛЕНИЕ ZIPENTRY
**
zipEntryKey = file.FullName.Replace(file.Directory.Root.ToString(), string.Empty);
zipEntryKey = ZipEntry.CleanName(zipEntryKey);
ZipEntry entry = new ZipEntry(zipEntryKey);
entry.DateTime = file.LastWriteTime;
Stream fileStream = Minify(file);
byte[] buffer = new byte[fileStream.Length];
entry.Size = fileStream.Length;
fileStream.Read(buffer, 0, buffer.Length);
fileStream.Close();
zipStream.PutNextEntry(entry);
zipStream.Write(buffer, 0, buffer.Length);
zipStream.CloseEntry();
УДАЛЕНИЕ ЗИПЕНТРИИ
zipEntryKey = file.FullName.Replace(file.Directory.Root.ToString(), string.Empty);
zipEntryKey = ZipEntry.CleanName(zipEntryKey);
if (existingZip.FindEntry(zipEntryKey, true) > -1)
{
existingZip.BeginUpdate();
ZipEntry Existing = existingZip[existingZip.FindEntry(zipEntryKey, true)];
existingZip.Delete(Existing);
existingZip.CommitUpdate();
}