user452738
user452738

Reputation: 33

zip files in server

How can I zip (In the server) multiple files to one archive?

Upvotes: 3

Views: 1178

Answers (3)

Martin Vobr
Martin Vobr

Reputation: 5823

Following code uses our Rebex ZIP and shows how to add files into the ZIP archive without using any temp file. The ZIP is then sent to the web browser.

// prepare MemoryStream to create ZIP archive within
using (MemoryStream ms = new MemoryStream())
{
    // create new ZIP archive within prepared MemoryStream
    using (ZipArchive zip = new ZipArchive(ms))
    {            
         // add some files to ZIP archive
         zip.Add(@"c:\temp\testfile.txt");
         zip.Add(@"c:\temp\innerfile.txt", @"\subfolder");

         // clear response stream and set the response header and content type
         Response.Clear();
         Response.ContentType = "application/zip";
         Response.AddHeader("content-disposition", "filename=sample.zip");

         // write content of the MemoryStream (created ZIP archive) 
         // to the response stream
         ms.WriteTo(Response.OutputStream);
    }
}

// close the current HTTP response and stop executing this page
HttpContext.Current.ApplicationInstance.CompleteRequest();

For more info see ZIP tutorial.

Alternative solution:

SharpZipLib and DotNetZip a widely used free alternatives.

Upvotes: 2

Kevin LaBranche
Kevin LaBranche

Reputation: 21088

Take a look at SharpZipLib or DotNetZip

Upvotes: 1

Raj More
Raj More

Reputation: 48034

Codeplex has Dot Net Zip http://dotnetzip.codeplex.com/

You can also try System.IO.Compression

Upvotes: 0

Related Questions