/// <summary>
/// 压缩
/// </summary>
/// <param name="vcompressString"></param>
/// <returns></returns>
public byte[] CompressString(string vcompressString)
{
byte[] result = null;
if (vcompressString != null && vcompressString != "")
{
try
{
byte[] vData = Encoding.UTF8.GetBytes(vcompressString);
MemoryStream input = new MemoryStream(vData);
MemoryStream output = new MemoryStream();
System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(output,
System.IO.Compression.CompressionMode.Compress);
byte[] vBuf = new byte[4096];
int number;
while ((number = input.Read(vBuf, 0, 4096)) > 0)
{
gzip.Write(vBuf, 0, number);
}
gzip.Close();
input.Close();
result = output.ToArray();
}
catch (Exception E)
{
MessageBox.Show("压缩字符串失败,原因: " + E.Message);
}
}
return result;
}
/// <summary>
/// 解缩
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public string Decompress(byte[] data)
{
string Result = "";
if (data != null)
{
try
{
MemoryStream input = new MemoryStream(data);
System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(input, System.IO.Compression.CompressionMode.Decompress, true);
MemoryStream output = new MemoryStream();
byte[] buff = new byte[4096];
int read = -1;
read = gzip.Read(buff, 0, buff.Length);
while (read > 0)
{
output.Write(buff, 0, read);
read = gzip.Read(buff, 0, buff.Length);
}
gzip.Close();
input.Dispose();
Result = Encoding.UTF8.GetString(output.ToArray());
}
catch (Exception E)
{
Result = "ERROR:无法获取数据,原因:" + E.Message;
}
}
else
Result = "ERROR:数据值为空!";
return Result;
}