To compress and decompress using GZip in C# and VB.NET you can use the Following snippet.
Samples
Sample C#
public static byte[] DecompressGZip(byte[] bytesToDecompress)
{
using (GZipStream stream = new GZipStream(new MemoryStream(bytesToDecompress), CompressionMode.Decompress))
{
const int size = 4096;
byte[] buffer = new byte[size];
using (MemoryStream memoryStream = new MemoryStream())
{
int count;
do
{
count = stream.Read(buffer, 0, size);
if (count > 0)
{
memoryStream.Write(buffer, 0, count);
}
} while (count > 0);
return memoryStream.ToArray();
}
}
}
public static byte[] CompressGZip(string input, Encoding encoding = null)
{
encoding = encoding ?? Encoding.Unicode;
byte[] bytes = encoding.GetBytes(input);
using (MemoryStream stream = new MemoryStream())
{
using (GZipStream zipStream = new GZipStream(stream, CompressionMode.Compress))
{
zipStream.Write(bytes, 0, bytes.Length);
return stream.ToArray();
}
}
}
Sample VB.NET
Public Function DecompressGZip(bytesToDecompress As Byte()) As Byte()
Using stream As New GZipStream(New MemoryStream(bytesToDecompress), CompressionMode.Decompress)
Const size As Integer = 4096
Dim buffer As Byte() = New Byte(size - 1) {}
Using memoryStream As New MemoryStream()
Dim count As Integer
Do
count = stream.Read(buffer, 0, size)
If count > 0 Then
memoryStream.Write(buffer, 0, count)
End If
Loop While count > 0
Return memoryStream.ToArray()
End Using
End Using
End Function
Public Function CompressGZip(input As String, Optional encoding As Encoding = Nothing) As Byte()
encoding = If(encoding, Encoding.Unicode)
Dim bytes As Byte() = encoding.GetBytes(input)
Using stream As New MemoryStream()
Using zipStream As New GZipStream(stream, CompressionMode.Compress)
zipStream.Write(bytes, 0, bytes.Length)
Return stream.ToArray()
End Using
End Using
End Function
If you have any questions or suggestions feel free to rate this snippet, post a comment or Contact Us via Email.
Related links:
RT @CodeSnippetsNET: How to compress and decompress using GZip .NET http://t.co/qKACaRmR8Z #csharp #dotnet #vb
Compress and decompress using #GZip in #Csharp and #VB #DOTNET ==> https://t.co/QuuDKRguMq
RT @CodeSnippetsNET: Compress and decompress using #GZip in #Csharp and #VB #DOTNET ==> https://t.co/QuuDKRguMq
RT @CodeSnippetsNET: Compress and decompress using #GZip in #Csharp and #VB #DOTNET ==> https://t.co/QuuDKRguMq
RT @CodeSnippetsNET: Compress and decompress using #GZip in #Csharp and #VB #DOTNET ==> https://t.co/QuuDKRguMq