Имеется простой код упаковки файлов в архив, с использованием стандартного System.IO.Compression с 4.5 дотнета:
var directories = new DirectoryInfo(folder);
var files = directories
.GetFiles("*", SearchOption.TopDirectoryOnly)
.Select(f => f.FullName);
foreach (var file in files)
{
var fileName = file
.Replace(directories.FullName + Path.DirectorySeparatorChar, string.Empty)
.Replace(directories.FullName, string.Empty);
var fileInZip = zip.Entries.FirstOrDefault(f => f.FullName == fileName);
if (fileInZip != null)
fileInZip.Delete();
zip.CreateEntryFromFile(file, fileName, CompressionLevel.NoCompression);
}
В чем собственно проблема - иногда файлы не попадают в архив. Файлы, которые уже там имелись, при этом остаются.
Возможно, я просто неправильно написал добавление файлов в архив, тогда хотелось бы узнать, как это лучше делать.