we are going to discuss about how to compress the file using asp.net application , ie: for compression there are some third party tools like CSharpZip (not sue about the name of the tools..) ,gzip, etc..
Asp.net has inbuilt with Compression ie: derive from the Class
using System.IO.Compression;
There are two compression derived from this namespace.
1) Gzipstream
2) Deflate stream
Deflate seems to be must faster than the Gzipstream but Deflate doesn't uncompress other formats , but Gzipstream decompress the other files like winzip, winrar .
Now we are going to see Gzipstream it has a class which contains filename and compression mode , Compression mode has two values Compress and Decompress.
Button_ClickEvent
CompressFile(Server.MapPath("~/Decompressed/FindEmai_onTextfile.txt"),Server.MapPath("~/Decompressed/FindEmai_onTextfile.zip"));
Here you have to give two parameter first one is Sourcefilename to be compressed , second is path where you have to place the compressed file. it will check if the file exists the compressed file has been placed there, else it will create on the fly.
Method definition
public static void CompressFile(string sourceFileName, string destinationFileName)
{
FileStream outStream;
FileStream inStream;
//Check if the source file exist.
if (File.Exists(sourceFileName))
{
//Read teh input file
//Check if the destination file exist else create once
outStream = File.Open(destinationFileName, FileMode.OpenOrCreate);
GZipStream zipStream = new GZipStream(outStream, CompressionMode.Compress);
//Now create a byte array to hold the contents of the file
byte[] fileContents = new byte[inStream.Length];
//Read the contents to this byte array
inStream.Read(fileContents, 0, fileContents.Length);
zipStream.Write(fileContents, 0, fileContents.Length);
//Now close all the streams.
zipStream.Close();
inStream.Close();
outStream.Close();
}
}
No comments:
Post a Comment