in the dotnet framework there are two method for compressing data
1) GZip
2)Deflate
here i am using GZip Stream (System.IO.Compression).
Steps
1) Create Simple Web Application (asp.net with C#).
2) put below control in to page.
2.1) Button (id=”btnCompress”)
3) put below code in to click event of button.
//create one folder in the project (txt) //get the folder physical path string filepath = Server.MapPath("txt"); //create file StreamWriter sw = new StreamWriter(filepath + @"\1.txt"); sw.WriteLine("we compress this file after few min."); sw.Close(); //open 1.txt file FileStream objFile = File.OpenRead(filepath + @"\" + "1.txt"); //create zip file FileStream objZipFile = File.Create(filepath + @"\zip.gz"); //this is compress stream System.IO.Compression.GZipStream objGZip = new System.IO.Compression.GZipStream(objZipFile, CompressionMode.Compress); //Read Bytes From Destination File int bytes = objFile.ReadByte(); while (bytes != -1) { //write byte in Compress File objGZip.WriteByte((byte)bytes); bytes = objFile.ReadByte(); } objGZip.Close(); objZipFile.Close();
Thanks.
Hi,
I tried this code. I included the using directive “using System.IO.Compression;”. but the StreamWriter is not coming in the intellisense list. Though i compiled, it gives the obvious error “The type or namespace name ‘StreamWriter’ could not be found (are you missing a using directive or an assembly reference?) “. Pls help.
Comment by saravanan — November 14, 2008 @ 2:42 pm
hi saravanan,
add below name space.
//add namespace
using System.IO;
using System.IO.Compression;
Comment by patriwala — November 14, 2008 @ 4:07 pm
I find this link was working fine… Gzip C#
Comment by yogesh — April 1, 2009 @ 1:46 pm