/// <summary> /// Zips the specified un-zipped stream. /// </summary> /// <param name="unZipStream">The stream to zip.</param> /// <param name="zipStream">The stream that will contain the zipper data.</param> /// <param name="compressionType">The type of compression to use.</param> public static void Compress(Stream unZipStream, Stream zipStream, CompressionAlgorithmStreaming compressionType) { switch (compressionType) { case CompressionAlgorithmStreaming.GZip: GZipStream.Compress(unZipStream, zipStream); break; case CompressionAlgorithmStreaming.ZLib: ZlibStream.Compress(unZipStream, zipStream); break; } }
/// <summary> /// Get the compression algorithm conversion. /// </summary> /// <param name="compressionAlgorithm">The compression algorithm.</param> /// <returns>The compression algorithm index.</returns> public static int GetAlgorithmInt32(CompressionAlgorithmStreaming compressionAlgorithm) { switch (compressionAlgorithm) { case CompressionAlgorithmStreaming.GZip: return(2); case CompressionAlgorithmStreaming.ZLib: return(1); case CompressionAlgorithmStreaming.None: default: return(0); } }
/// <summary> /// Unzips a zipped stream to the specified stream /// </summary> /// <param name="zipArray">The zipped stream to un-zip.</param> /// <param name="compressionType">The type of compression to use.</param> public static byte[] Decompress(byte[] zipArray, CompressionAlgorithmStreaming compressionType) { using (MemoryStream unZipStream = new MemoryStream()) using (MemoryStream zipStream = new MemoryStream(zipArray)) { switch (compressionType) { case CompressionAlgorithmStreaming.GZip: GZipStream.Decompress(zipStream, unZipStream); break; case CompressionAlgorithmStreaming.ZLib: ZlibStream.Decompress(zipStream, unZipStream); break; } unZipStream.Close(); return(unZipStream.ToArray()); } }