/// <summary>
/// 压缩文件
/// </summary>
/// <param name="sourceFile">要压缩的文件名</param>
/// <param name="destFile">压缩后的文件名</param>
public static void CompressFile(string sourceFile, string destFile)
{
FileStream sf = File.OpenRead(sourceFile);
byte[] data = CompressFile(sf);
if (File.Exists(destFile)) File.Delete(destFile);
FileStream sfDest = File.Create(destFile);
sfDest.Write(data, 0, data.Length);
sf.Close();
sfDest.Close();
}
/// <summary>
/// 压缩文件
/// </summary>
/// <param name="fs">原始文件流</param>
/// <returns>压缩文件流</returns>
public static byte[] CompressFile(FileStream fs)
{
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
MemoryStream ms = new MemoryStream();
GZipStream gZipStream = new GZipStream(ms, CompressionMode.Compress);
gZipStream.Write(buffer, 0, buffer.Length);
gZipStream.Close();
ms.Flush();
byte[] data = ms.ToArray();
ms.Close();
return data;
}