Вот так можно:
FileStream sourceFile = File.OpenRead(@"C:\zip.xml");
FileStream destFile = File.Create(@"C:\zip.zip");
GZipStream compStream = new GZipStream(destFile, CompressionMode.Compress);
try
{
int value = sourceFile.ReadByte();
while (value!= -1)
{
compStream.WriteByte((byte)value);
value = sourceFile.ReadByte();
}
}
finally
{
compStream.Dispose();
}