解决方案 »

  1.   

    RARFilePath里难道没有包含RARFileName吗,干嘛把他俩拼接到一起
      

  2.   

    你确认Face2.rar是在D盘下?如你建立一个数据目录mdb,mdb.rar在mdb目录下,并解到D:\mdb\m目录下。UnRAR(@"D:\mdb\", "mdb.rar", @"D:\mdb\m");
      

  3.   

    C#解压文件问题
    //使用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();
                }
            }