using System.IO;
using System.IO.Compression;
//...
public static void CompressFile(string inputFileName, string outputFileName)
{
byte[] buffer = new byte[4096];
if (File.Exists(inputFileName))
{
using (FileStream inputFile = File.Open(inputFileName, FileMode.Open), outputFile = File.Create(outputFileName))
{
using (GZipStream gzip = new GZipStream(outputFile, CompressionMode.Compress))
{
int n = 0;
while((n = inputFile.Read(buffer, 0, buffer.Length)) != 0)
{
gzip.Write(buffer, 0, n);
}
}
}
}
}
public static void UncompressFile(string inputFileName, string outputFileName)
{
byte[] buffer = new byte[4096];
if(File.Exists(inputFileName))
{
using (FileStream intputFile = File.Open(inputFileName, FileMode.Open), outputFile = File.Create(outputFileName))
{
using (GZipStream gzip = new GZipStream(intputFile, CompressionMode.Decompress))
{
int n;
while ((n = gzip.Read(buffer, 0, buffer.Length)) != 0)
{
outputFile.Write(buffer, 0, n);
}
}
}
}
}