数据压缩
ClownFish为数据压缩提供了便捷的扩展方法
/// <summary>
/// GZIP压缩相关的工具方法
/// </summary>
public static class GzipHelper
{
/// <summary>
/// 用GZIP压缩一个字符串,并以BASE64字符串的形式返回压缩后的结果
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string Compress(string input)
/// <summary>
/// 用GZIP解压缩一个BASE64字符串
/// </summary>
/// <param name="base64"></param>
/// <returns></returns>
public static string Decompress(string base64)
/// <summary>
/// 将一个文本转指定编码后做Gzip压缩
/// </summary>
/// <param name="text"></param>
/// <param name="encoding">默认UTF8</param>
/// <returns></returns>
public static byte[] ToGzip(this string text, Encoding encoding = null)
/// <summary>
/// 用Gzip压缩格式压缩一个二进制数组
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static byte[] ToGzip(this byte[] input)
/// <summary>
/// 解压缩一个二进制数组
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static byte[] UnGzip(this byte[] input)
}
ZIP文件压缩
示例代码
public void 将ZIP文件释放到指定目录()
{
string zipPath = @"D:\my-github\bin.zip";
string destPath = @"D:\test";
ZipHelper.ExtractFiles(zipPath, destPath);
}
public void 在内存中读取ZIP文件()
{
string zipPath = @"D:\my-github\bin.zip";
var data = ZipHelper.Read(zipPath);
// 结果是一个元组LIST
// 每个元组中,Item1 就是压缩包内的文件名,Item2 就是文件内容。
// 如果需要读取某个文件,可以从LIST中查找
}
public void 将指定目录打包成ZIP文件_含子目录()
{
string srcPath = @"D:\test";
string zipPath = @"D:\my-github\bin.zip";
ZipHelper.CompressDirectory(srcPath, zipPath);
}
public void 将内存数据打包成ZIP文件()
{
List<ZipItem> data = null; // 需要准备好这个结构
string zipPath = @"D:\my-github\bin.zip";
ZipHelper.Compress(data, zipPath);
}