解决方案 »
- C#GBK转码问题
- 问下转化的问题
- 菜鸟一个关于数组的问题
- DataView数据筛选更新问题,迷惑中
- 在webform 中如何获取confirm的按下窗口按扭是确定还是取消?
- WinForm界面闪烁问题
- 新手提问:C#提供的支持某个接口基类,如何能知道基类是否已经实现了接口中的成员?
- <%# Server.HtmlDecode(DataBinder.Eval(Container.DataItem,"content"))%>这句语句应该怎么写?
- 给sqladapter的SelectCommand赋值的代码怎么写?
- 【动态生成DataGrid】
- gridcontrol主从表 导出xlsx和打印
- C#IEnumrator<T>
//使用Gzip解压文件
private void button2_Click(object sender, EventArgs e)
{ if (String.IsNullOrEmpty(textBox1.Text))
{
MessageBox.Show("请选择GZIP文件!", "信息提示");
return;
} if (String.IsNullOrEmpty(textBox2.Text))
{
MessageBox.Show("请输入解压文件名!", "信息提示");
return;
}//codego.net/tags/11/1/
string str1 = textBox1.Text;
string str2 = textBox2.Text.Trim();
byte[] myByte = null;
FileStream myStream = null;
FileStream myDesStream = null;
GZipStream myDeComStream = null;
try
{
myStream = new FileStream(str1, FileMode.Open);
myDeComStream = new GZipStream(myStream, CompressionMode.Decompress, true);
myByte = new byte[4];
int myPosition = (int)myStream.Length - 4;
myStream.Position = myPosition;
myStream.Read(myByte, 0, 4);
myStream.Position = 0;
int myLength = BitConverter.ToInt32(myByte, 0);
byte[] myData = new byte[myLength + 100];
int myOffset = 0;
int myTotal = 0;
while (true)
{
int myBytesRead = myDeComStream.Read(myData, myOffset, 100);
if (myBytesRead == 0)
break;
myOffset += myBytesRead;
myTotal += myBytesRead;
}
myDesStream = new FileStream(str2, FileMode.Create);
myDesStream.Write(myData, 0, myTotal);
myDesStream.Flush();
MessageBox.Show("解压文件完成!");
}
catch { }
finally
{
myStream.Close();
myDeComStream.Close();
myDesStream.Close();
}
}