Compress and decompress streams using the Deflate algorithm in CSharp

Description

The following code shows how to compress and decompress streams using the Deflate algorithm.

Example


/*from  ww  w . ja  v  a 2s.c  om*/
using System;
using System.IO;
using System.IO.Compression;

public class Program
{

    public static void Main()
    {
        string dirpath = @"c:\";
        DirectoryInfo di = new DirectoryInfo(dirpath);
        foreach (FileInfo fi in di.GetFiles())
        {
            Compress(fi);
      }
        foreach (FileInfo fi in di.GetFiles("*.cmp"))
        {
        Decompress(fi);
        }
    }
    public static void Compress(FileInfo fi)
    {
        using (FileStream inFile = fi.OpenRead())
        {
            if ((File.GetAttributes(fi.FullName) & FileAttributes.Hidden)!= FileAttributes.Hidden & fi.Extension != ".cmp")
            {
                using (FileStream outFile = File.Create(fi.FullName + ".cmp"))
                {
                    using (DeflateStream Compress = new DeflateStream(outFile, CompressionMode.Compress))
                    {
                        inFile.CopyTo(Compress);
                        Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
                        fi.Name, fi.Length.ToString(), outFile.Length.ToString());
                    }
                }
            }
        }
    }

    public static void Decompress(FileInfo fi)
    {
        using (FileStream inFile = fi.OpenRead())
        {
          string curFile = fi.FullName;
          string origName = curFile.Remove(curFile.Length - fi.Extension.Length);
          using (FileStream outFile = File.Create(origName))
          {
              using (DeflateStream Decompress = new DeflateStream(inFile,CompressionMode.Decompress))
              {
                   Decompress.CopyTo(outFile);
               
                Console.WriteLine("Decompressed: {0}", fi.Name);
              }
          }
        }
    }
}




















Home »
  C# Tutorial »
    IO »




File Attribute
File Security
Directory Attribute
Directory Recursive
Binary File
Text Field
Buffered IO
Create Copy Delete Move
CSV
Drive
File System Watcher
Isolated Storage
MemoryStream
Serialize
Zip