Compressing and Decompressing files in C#


Use the System.IO.Compression Namespace in C# to compress and decompress files in C#.

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. Seth 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;
   }
}

Samual Sam
Samual Sam

Learning faster. Every day.

Updated on: 23-Jun-2020

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements