欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#调用Rar文件及获取Rar返回值的方法

程序员文章站 2023-11-16 23:25:16
本文实例讲述了c#调用rar文件及获取rar返回值的方法。分享给大家供大家参考。具体如下: 该程序适用于c#调用。 所需的rar.exe可从winrar官网下载控制台...

本文实例讲述了c#调用rar文件及获取rar返回值的方法。分享给大家供大家参考。具体如下:

该程序适用于c#调用。
所需的rar.exe可从winrar官网下载控制台版。

按钮ok点击事件:

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;
 }
}

希望本文所述对大家的c#程序设计有所帮助。