Compressing and Decompressing files using GZIP Format in C#

CsharpProgrammingServer Side Programming

To compress and decompress files using GZIP Format, use the GZipStream class.

Compress

To zip a file, use the GZipStream class with the FileStream class. Set the following parameters.

File to be zipped and the name of the output zip file.

Here, outputFile is the output file and the file is read into the FileStream.

Example

using(var compress = new GZipStream(outputFile, CompressionMode.Compress, false)) {
   byte[] b = new byte[inFile.Length];
   int read = inFile.Read(b, 0, b.Length);
   while (read > 0) {
      compress.Write(b, 0, read);
      read = inFile.Read(b, 0, b.Length);
   }
}

Decompress

To decompress a file, use the same the GZipStream class. Set the following parameters: source file and the name of the output file.

From the source zip file, open a GZipStream.

using (var zip = new GZipStream(inStream, CompressionMode.Decompress, true))

To decompress, use a loop and read as long as you have data in the stream. Write it to the output stream and a file generates. The file is our decompressed file.

Example

using(var zip = new GZipStream(inputStream, CompressionMode.Decompress, true)) {
   byte[] b = new byte[inputStream.Length];
   while (true) {
      int count = zip.Read(b, 0, b.Length);
      if (count != 0)
      outputStream.Write(b, 0, count);
      if (count != b.Length)
      break;
   }
}
raja
Published on 18-Sep-2018 07:50:42
Advertisements