您的位置:首页 > 编程语言 > C#

c#压缩和解压缩

2016-04-12 14:50 411 查看
--1.ClassBinary

public class ClassBinary
{
public ClassBinary()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 压缩
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
public byte[] CompressToBytes(DataSet ds)
{
DataSetSurrogate dss = new DataSetSurrogate(ds);
BinaryFormatter ser = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
ser.Serialize(ms, dss);
byte[] buffer = ms.ToArray();
byte[] zipBuffer = new CompressionHelper(CompressionLevel.BestSpeed).CompressToBytes(buffer);

return zipBuffer;
}
/// <summary>
/// 解压
/// </summary>
/// <param name="zipBuffer"></param>
/// <returns></returns>
public DataSet DecompressToBytes(byte[] zipBuffer)
{
if (zipBuffer == null) return null;
byte[] buffer = new CompressionHelper().DecompressToBytes(zipBuffer);
BinaryFormatter ser = new BinaryFormatter();
DataSetSurrogate dss = ser.Deserialize(new MemoryStream(buffer)) as DataSetSurrogate;
DataSet dsZip = dss.ConvertToDataSet();

return dsZip;
}

}


2.使用

1、压缩
DataSet ds = new DataSet();//假设的ds
byte[] byte = new ClassBinary().CompressToBytes(ds );

2、解压缩
DataSet ds2 =new ClassBinary().DecompressToBytes(byte);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: