C# GZipStream GZipStream(Stream, CompressionMode)

Description

GZipStream GZipStream(Stream, CompressionMode) Initializes a new instance of the GZipStream class by using the specified stream and compression mode.

Syntax

GZipStream.GZipStream(Stream, CompressionMode) has the following syntax.


public GZipStream(
  Stream stream,
  CompressionMode mode
)

Parameters

GZipStream.GZipStream(Stream, CompressionMode) has the following parameters.

  • stream - The stream to compress or decompress.
  • mode - One of the enumeration values that indicates whether to compress or decompress the stream.

Example

The following example initializes a new instance of the GZipStream class with mode set to Compress.


//  w  w w. j a  v  a  2  s . com
using System;
using System.IO;
using System.IO.Compression;

public class Program
{
    public static void Main()
    {
        string directoryPath = @"c:\users\public\reports";

        DirectoryInfo directorySelected = new DirectoryInfo(directoryPath);

        foreach (FileInfo fileToCompress in directorySelected.GetFiles())
        {
            Compress(fileToCompress);
        }

        foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.gz"))
        {
            Decompress(fileToDecompress);
        }
    }

    public static void Compress(FileInfo fileToCompress)
    {
        using (FileStream originalFileStream = fileToCompress.OpenRead())
        {
            if ((File.GetAttributes(fileToCompress.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fileToCompress.Extension != ".gz")
            {
                using (FileStream compressedFileStream = File.Create(fileToCompress.FullName + ".gz"))
                {
                    using (GZipStream compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress))
                    {
                        originalFileStream.CopyTo(compressionStream);
                        Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
                            fileToCompress.Name, fileToCompress.Length.ToString(), compressedFileStream.Length.ToString());
                    }
                }
            }
        }
    }

    public static void Decompress(FileInfo fileToDecompress)
    {
        using (FileStream originalFileStream = fileToDecompress.OpenRead())
        {
            string currentFileName = fileToDecompress.FullName;
            string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);

            using (FileStream decompressedFileStream = File.Create(newFileName))
            {
                using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
                {
                    decompressionStream.CopyTo(decompressedFileStream);
                    Console.WriteLine("Decompressed: {0}", fileToDecompress.Name);
                }
            }
        }
    }
}




















Home »
  C# Tutorial »
    System.IO.Compression »




DeflateStream
GZipStream
ZipArchive
ZipArchiveEntry
ZipFile
ZipFileExtensions