C# DeflateStream DeflateStream(Stream, CompressionMode, Boolean)

Description

DeflateStream DeflateStream(Stream, CompressionMode, Boolean) Initializes a new instance of the DeflateStream class by using the specified stream and compression mode, and optionally leaves the stream open.

Syntax

DeflateStream.DeflateStream(Stream, CompressionMode, Boolean) has the following syntax.


public DeflateStream(
  Stream stream,//from ww w. ja  va 2 s.  c om
  CompressionMode mode,
  bool leaveOpen
)

Parameters

DeflateStream.DeflateStream(Stream, CompressionMode, Boolean) 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.
  • leaveOpen - true to leave the stream open after disposing the DeflateStream object; otherwise, false.

Example

The following code example shows how to use the DeflateStream class to compress and decompress a file.


/*  w  ww  .j  av a2s .co  m*/

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("*.cmp"))
        {
            Decompress(fileToDecompress);
        }
    }

    public static void Compress(FileInfo fileToCompress)
    {
        using (FileStream originalFileStream = fileToCompress.OpenRead())
        {
            if ((File.GetAttributes(fileToCompress.FullName) & FileAttributes.Hidden)
                != FileAttributes.Hidden & fileToCompress.Extension != ".cmp")
            {
                using (FileStream compressedFileStream = File.Create(fileToCompress.FullName + ".cmp"))
                {
                    using (DeflateStream compressionStream = new DeflateStream(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 (DeflateStream decompressionStream = new DeflateStream(originalFileStream, CompressionMode.Decompress))
              {
                    decompressionStream.CopyTo(decompressedFileStream);
                    Console.WriteLine("Decompressed: {0}", fileToDecompress.Name);
              }
          }
        }
    }
}




















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




DeflateStream
GZipStream
ZipArchive
ZipArchiveEntry
ZipFile
ZipFileExtensions