C# GZip/Zip Compression/Decompression

Simple zip compression in C#:

private static void ZipCompress()
{
const string srcFile = “DataFile.xml”;
const string desFile = “Compressed.zip”;

FileStream fsIn = null;
FileStream fsOut = null;
GZipStream gzip = null;
byte[] buffer;

try
{
fsOut = new FileStream(desFile, FileMode.Create, FileAccess.Write, FileShare.None);
gzip = new GZipStream(fsOut, CompressionMode.Compress, true);

fsIn = new FileStream(srcFile, FileMode.Open, FileAccess.Read, FileShare.Read);
buffer = new byte[fsIn.Length];
fsIn.Read(buffer, 0, buffer.Length);
fsIn.Close();

gzip.Write(buffer, 0, buffer.Length);
}
catch (Exception ex)
{
System.Diagnostics.Debug.Assert(false, ex.ToString());
}
finally
{
if (gzip != null)
gzip.Close();
if (fsOut != null)
fsOut.Close();
if (fsIn != null)
fsIn.Close();
}
}

Simple zip decompression in C#:

private static void ZipDecompress()
{
const string srcFile = “Compressed.zip”;
const string desFile = “Decompressed.xml”;

FileStream fsIn = null;
FileStream fsOut = null;
GZipStream gzip = null;
const int bufferSize = 4096;
byte[] buffer = new byte[bufferSize];

try
{
fsIn = new FileStream(srcFile, FileMode.Open, FileAccess.Read, FileShare.Read);
fsOut = new FileStream(desFile, FileMode.Create, FileAccess.Write, FileShare.None);
gzip = new GZipStream(fsIn, CompressionMode.Decompress, true);
while (true)
{
int count = gzip.Read(buffer, 0, bufferSize);
if (count != 0)
fsOut.Write(buffer, 0, count);
if (count != bufferSize)
break;
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.Assert(false, ex.ToString());
}
finally
{
if (gzip != null)
gzip.Close();
if (fsOut != null)
fsOut.Close();
if (fsIn != null)
fsIn.Close();
}
}