Compressing aFile Compressing a File string fileToBeCompressed = "D:My Great Word Document.doc"; string zipFilename = "D:CompressedGreatDocument.zip"; using (FileStream target = new FileStream(zipFilename, FileMode.Create, FileAccess.Write)) using (GZipStream alg = new GZipStream(target, CompressionMode.Compress)) { byte[] data = File.ReadAllBytes(fileToBeCompressed); alg.Write(data, 0, data.Length); alg.Flush(); } string compressedFile = "D:CompressedGreatDocument.zip"; string originalFileName = "D:My Great Word Document.doc"; using (FileStream zipFile = new FileStream(compressedFile, FileMode.Open, FileAccess.Read)) using (FileStream originalFile = new FileStream(originalFileName, FileMode.Create, FileAccess.Write)) using (GZipStream alg = new GZipStream(zipFile, CompressionMode.Decompress)) { while (true) { // Reading 100bytes by 100bytes byte[] buffer = new byte[100]; // The Read() method returns the number of bytes read int bytesRead = alg.Read(buffer, 0, buffer.Length); originalFile.Write(buffer, 0, returnedBytes); if (bytesRead != buffer.Length) break; } }