Click here to Skip to main content
14,303,726 members

How to compress/decompress directories using GZipStream

Rate this:
5.00 (2 votes)
Please Sign up or sign in to vote.
5.00 (2 votes)
1 Feb 2012CPOL
My alternative is to rather use a tried and tested compression api. It's simpler to use and you don't have to spend time developing helper methods to zip and unzip files.http://dotnetzip.codeplex.com/[^]Create a zip file using (ZipFile zip = new ZipFile()) { ...
My alternative is to rather use a tried and tested compression api. It's simpler to use and you don't have to spend time developing helper methods to zip and unzip files.
http://dotnetzip.codeplex.com/[^]

Create a zip file

using (ZipFile zip = new ZipFile())
 {
   zip.AddFile("ReadMe.txt");
   zip.AddFile("7440-N49th.png");
   zip.AddFile("2008_Annual_Report.pdf");
   zip.Save("Archive.zip");
 }


Extract a zip file

private void MyExtract()
  {
      string zipToUnpack = "C1P3SML.zip";
      string unpackDirectory = "Extracted Files";
      using (ZipFile zip1 = ZipFile.Read(zipToUnpack))
      {
          // here, we extract every entry, but we could extract conditionally
          // based on entry name, size, date, checkbox status, etc.  
          foreach (ZipEntry e in zip1)
          {
            e.Extract(unpackDirectory, ExtractExistingFileAction.OverwriteSilently);
          }
       }
    }


Create a downloadable zip within asp.net

public void btnGo_Click (Object sender, EventArgs e)
{
  Response.Clear();
  Response.BufferOutput= false;  // for large files
  String ReadmeText= "This is a zip file dynamically generated at " + System.DateTime.Now.ToString("G");
  string filename = System.IO.Path.GetFileName(ListOfFiles.SelectedItem.Text) + ".zip";
  Response.ContentType = "application/zip";
  Response.AddHeader("content-disposition", "filename=" + filename);
  
  using (ZipFile zip = new ZipFile()) 
  {
    zip.AddFile(ListOfFiles.SelectedItem.Text, "files");
    zip.AddEntry("Readme.txt", "", ReadmeText);
    zip.Save(Response.OutputStream);
  }
  Response.Close();
}


as well as various other uses.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Dean Oliver
Software Developer BBD Johannesburg
South Africa South Africa
Bsc (Hons) Business Information Systems.
MCTS: Web Applications Development with Microsoft .NET Framework 4
MCTS: Windows Communication Foundation Development with Microsoft .NET Framework 4
MCTS: Accessing Data with Microsoft .NET Framework 4
Microsoft Certified Professional Developer Certification.

Comments and Discussions

 
-- There are no messages in this forum --
Alternative
Tip/Trick
Posted 1 Feb 2012

Tagged as

Stats

13K views
7 bookmarked