Es un codigo bastante simple pero que puede sacarnos de apuros.
Utiliza la libreria NPOI, que la pueden descargar de: http://dotnetzip.codeplex.com/
Espero les sea de utilidad.
private void responseZipFile(Object datos, object sender, EventArgs e)
{
using (StringWriter sw = new StringWriter())
{
using (MemoryStream ms = new MemoryStream())
{
Response.Clear();
Response.Buffer = true;
Response.ContentType = "aplication/zip";
Response.AddHeader("Content-Disposition", "attachment;filename=file.zip");
this.EnableViewState = false;
using (ZipFile zip = new ZipFile())
{
zip.AddEntry("Readme.txt", "stringContent1");
zip.AddEntry("readings/Data.csv", "stringContent2");
zip.AddEntry("readings/Index.xml", "stringContent3");
zip.Save(ms);
}
HttpContext.Current.Response.BinaryWrite(ms.ToArray());
HttpContext.Current.Response.End();
}
}
}
Saludos