How to: Compress .NET Stream

To compress a .NET stream, do the following:

  1. Create a ZipArchive class instance.
  2. Call its ZipArchive.AddStream method and specify a source stream.
  3. Call the proper ZipArchive.Save method overload to create an archive and save it to a stream.
using DevExpress.Compression;
        public void ArchiveStream() {
            using (Stream myStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes("DevExpress"))) {
                using (Stream myZippedStream = new FileStream("Documents\\ArchiveStream.zip", System.IO.FileMode.Create)) {
                    using (ZipArchive archive = new ZipArchive()) {
                        archive.AddStream("myStream", myStream);
                        archive.Save(myZippedStream);
                    }
                }
            }
        }