Немного поменяла код. Есть дву контекстные переменные : список файлов в NewDoc и пустой архив в Archive. После выполнения сценария в архив записываются данные (размер файла меняется). Но выпадает ошибка: Контрольная сумма файла не совпадает соригинальной . Как с этим справится? Подскажите, пожалуйста!
Код:
public virtual void AddArchive(Context context)
{
foreach (var element in context.NewDoc)
{ Compress(element.File.ContentFilePath, context.Archive.File.ContentFilePath);
}
context.NewDoc.Add(context.Archive);
}
public static void Compress(String fileSource, String fileDestination)
{
using (FileStream fsInput = new FileStream(fileSource, FileMode.Open, FileAccess.Read))
{
using (FileStream fsOutput = new FileStream(fileDestination, FileMode.Create, FileAccess.Write))
{
using (GZipStream gzipStream = new GZipStream(fsOutput, CompressionMode.Compress))
{
Byte[] buffer = new Byte[fsInput.Length];
int h;
while ((h = fsInput.Read(buffer, 0, buffer.Length)) > 0)
{
gzipStream.Write(buffer, 0, h);
}
}
}
}
}