Introduction:
In this article i am going to express about how to compress/decompress files using Asp.Net 2.0
Main:
In Asp.Net 2.0 we have a new feature for compressing and decompressing files is called GZIPSTREAM classes.These classes
are coming under System.IO.Compression namespace.
For Compressing Files:
FileStream local_fs = new FileStream("C:\\Sample.txt", FileMode.Open);
byte[] local_input = new byte[local_fs.Length];
local_fs.Read(local_input, 0, local_input.Length);
local_fs.Close();
FileStream local_fsopt = new FileStream("C:\\Sample.txt",
FileMode.Create,
FileAccess.Write);
GZipStream local_zip = new GZipStream(local_fsopt, CompressionMode.Compress);
zip.Write(input, 0, input.Length);
zip.Close();
local_fsopt.Close();
FileStream local_fs = new FileStream("C:\\Sample.txt", FileMode.Open); byte[] local_input = new byte[local_fs.Length]; local_fs.Read(local_input, 0, local_input.Length); local_fs.Close(); FileStream local_fsopt = new FileStream("C:\\Sample.txt", FileMode.Create, FileAccess.Write); GZipStream local_zip = new GZipStream(local_fsopt, CompressionMode.Compress); zip.Write(input, 0, input.Length); zip.Close(); local_fsopt.Close(); |
For Decompressing Files:
FileStream local_fs = new FileStream("C:\\Sample.txt", FileMode.Open);
FileStream local_fsopt = new FileStream("C:\\Sample.txt",
FileMode.Create,
FileAccess.Write);
GZipStream local_zip = new GZipStream(local_fs, CompressionMode.Decompress, true);
byte[] local_buffer = new byte[4096];
int local_bytesRead;
bool local_continueLoop = true;
while (local_continueLoop)
{
local_bytesRead = local_zip.Read(local_buffer, 0, local_buffer.Length);
if (local_bytesRead == 0)
break;
local_fsopt.Write(local_buffer, 0, local_bytesRead);
}
local_zip.Close();
local_fsopt.Close();
local_fs.Close();
FileStream local_fs = new FileStream("C:\\Sample.txt", FileMode.Open); FileStream local_fsopt = new FileStream("C:\\Sample.txt", FileMode.Create, FileAccess.Write); GZipStream local_zip = new GZipStream(local_fs, CompressionMode.Decompress, true); byte[] local_buffer = new byte[4096]; int local_bytesRead; bool local_continueLoop = true; while (local_continueLoop) { local_bytesRead = local_zip.Read(local_buffer, 0, local_buffer.Length); if (local_bytesRead == 0) break; local_fsopt.Write(local_buffer, 0, local_bytesRead); } local_zip.Close(); local_fsopt.Close(); local_fs.Close(); |
Conclusion:
Hope this helps,
Happy Coding.