现在的位置: 首页 > 综合 > 正文

C#调用Rar文件以及获取Rar返回值

2017年11月10日 ⁄ 综合 ⁄ 共 2109字 ⁄ 字号 评论关闭

汪宪博 发布于 2012年07月12日 17时

http://www.oschina.net/code/snippet_584980_11834

C#调用Rar文件以及获取Rar返回值。 
适用于C#调用。 
所需的Rar.exe可从WinRar官网下载控制台版。 
也可以直接下载:http://public.myluoluo.com/u/85142505/ProgramFile/Rar.exe


System.Diagnostics.Process process;
        private void btnRAR_Click(object sender, EventArgs e)
        {
            if (System.IO.File.Exists("Rar.exe"))
            {
                try
                {
                    process = new System.Diagnostics.Process();
                    process.StartInfo.FileName = "Rar.exe";
                    process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
                    process.EnableRaisingEvents = true;
                    //m<0..5>       设置压缩级别(0-存储...3-默认...5-最大)
                    //rar a -m5 -ag[yyyy年mm月dd日_hh点mm分-ss] MyLuoLuo
                    process.StartInfo.Arguments = string.Format(@"a -m{0} -ag[yyyy年mm月dd日_hh点mm分-ss] {1}\\MyLuoLuo.rar {2}", this.SaveRank.ToString(),this.FileName,this.RarPath); //@"a -m5 -ag[yyyy年mm月dd日_hh点mm分-ss] MyLuoLuo.rar D:\Txt";
                    process.Exited += new EventHandler(RarStop);
                    process.Start();
                }
                catch (Exception ex)
                {
                    MessageBox.ShowError("发生错误!错误信息:\n" + ex.Message);
                }
            }
        }

private void RarStop(object sender, System.EventArgs e)
        {
            switch (process.ExitCode)
            {
                case 0:
                    MessageBox.ShowInformation("压缩成功!");
                    break;
                case 1:
                    MessageBox.ShowInformation("有错误但没有发生致命错误!");
                    break;
                case 2:
                    MessageBox.ShowError("发生一个致命错误!");
                    break;
                case 3:
                    MessageBox.ShowError("解压缩时发生一个 CRC 错误!");
                    break;
                case 4:
                    MessageBox.ShowError("试图修改先前使用 'k' 命令锁定的压缩文件!");
                    break;
                case 5:
                    MessageBox.ShowError("写入磁盘错误!");
                    break;
                case 6:
                    MessageBox.ShowError("打开文件错误!");
                    break;
                case 7:
                    MessageBox.ShowError("命令行选项错误!");
                    break;
                case 8:
                    MessageBox.ShowError("没有足够的内存进行操作!");
                    break;
                case 9:
                    MessageBox.ShowError("创建文件错误!");
                    break;
                case 255:
                    MessageBox.ShowError("用户中断操作");
                    break;
                default:
                    MessageBox.ShowError("未知错误!");
                    break;
            }
        }


抱歉!评论已关闭.