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

本文实例讲述了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#程序设计有所帮助。

时间: 2015-07-23

C#获取存储过程返回值和输出参数值的方法

1.获取Return返回值 复制代码 代码如下: //存储过程//Create PROCEDURE MYSQL//     @a int,//     @b int//AS//     return @a + @b//GOSqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());conn.Open();SqlCommand MyC

C#中ExecuteNonQuery()返回值注意点分析

本文实例讲述了C#中ExecuteNonQuery()返回值注意点.对于C#数据库程序设计有一定的借鉴价值.分享给大家供大家参考之用.具体分析如下: 首先,在查询某个表中是否有数据的时候,我们通常用ExecuteNonQuery(),并通过判断值是否大于0来判断数据的存在与否.结果与我所设想的很不一致,调试时才发现,其执行后返回的结果是-1,对此我很是不理解,回头查了下资料,如下显示: SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影

c#获取存储过程返回值示例分享

存储过程: 复制代码 代码如下: CREATE  PROCEDURE [dbo].[Proc_GetInfo] @ywdm varchar(10), @value varchar(20) output AS begin set @value=Select top 1 createt From table Where ywdm=@ywdm end C#获取存储过程返回值: 复制代码 代码如下: var db = DatabaseFactory.CreateDatabase(); var cmd =

C#实现.net页面之间传值传参方法汇总

本文实例总结了C#实现.net页面之间传值传参方法.分享给大家供大家参考.具体实现方法分析如下: 一.QueryString传值 一般来说,QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或对象的话,就不能用这个方法了.如下面实例所示: 复制代码 代码如下: private void Button1_Click(object sender, System.EventA

c# List find()方法返回值的问题说明(返回结果为对象的指针)

C#中List<T>中泛型T如果是一个对象的话,则利用Find函数返回的将是这个对象的指针,对其返回对象的属性进行操作,也会影响list中相应元素对象的值.验证如下:1.新建一个Class1类,其含有两个姓名和分数两个属性: 复制代码 代码如下: <SPAN style="FONT-SIZE: 18px">    public class Class1    {        public string name{ get; set; }        publ

C#调用存储过程详解(带返回值、参数输入输出等)

本文实例讲述了C#调用存储过程的方法.分享给大家供大家参考,具体如下: CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGIN SELECT @studentname=studentname FROM student WHERE studentid=@studentid if @@Error<>0 RETURN -1 else RETURN 0 E

C#实现向多线程传参的三种方式实例分析

本文实例讲述了C#实现向多线程传参的三种方式.分享给大家供大家参考,具体如下: 从<C#高级编程>了解到给线程传递参数有两种方式,一种方式是使用带ParameterizedThreadStart委托参数的Thread构造函数,另一种方式是创建一个自定义类,把线程的方法定义为实例的方法,这样就可以初始化实例的数据,之后启动线程. 方式一:使用ParameterizedThreadStart委托 如果使用了ParameterizedThreadStart委托,线程的入口必须有一个object类型的

C#打开php链接传参然后接收返回值的关键代码

php代码 一.php <?php header("Content-Type:text/html;charset=UTF-8"); $u=$_POST['zdupdate']; $p=$_POST['pid']; $a=$_POST["afid"]; $d=$_POST["dtime"]; require('../db/conn.php');//打开文件 $sql_expire="insert into `m-haibook`.t

微信小程序链接传参并跳转新页面

像传统的传参一样,只是在微信里面的标签不一样而已,navigator标签的文档说明: https://mp.weixin.qq.com/debug/wxadoc/dev/component/navigator.html?t=20161122 下面是传递参数并展示新页面的一个简单栗子: 这是index.wxml代码: <navigator class="bury-wrapper wx-li" url="../detail/detail?id={{name.id}}&quo

jsp传参 servlet接收中文乱码问题的解决方法

在公司实习了8个月,一直都是做android和h5的,但是发现做程序连一点服务都不会该怎么办,所以最近开始学起了java,不知道是不是因为框架学多了,现在看起springmvc框架比以前看起来简单太多了,这里我是准备从hibernate开始学习,毕竟数据是根本嘛,首先我用的是hibernate+servlet,但是在jsp页面传参到servlet的时候中文一直乱码,我尝试了好多方法,最后还是解决了. 第一,首先看清项目的编码,jsp页面的编码 第二,修改tomcat 下面的server.xml文

.NET调用控制台下生成的exe文件,传参及获取返回参数的思路及代码

最近客户要求把一个树型目录导出成文件夹套文件夹的结构,并提供下载功能,刚开始感觉功能比较容易实现就在最短的时间把基本功能搞定,当发布到服务器上之后发现直接在本应用程序中导出目录(下带ntko文档及附件)再进行压缩,程序直接卡死了!后来就想到了要做一window服务,只是客户给的时间太短,没办法先写一控制台程序生成一个exe文件,然后再调用这个exe文件,这样就可以缓解本程序压力了! 下面写一个测试项目 在调用exe端传过去一个要压缩的文件夹的路径,然后在控制台下获取该路径进行压缩,压缩完成之后返

Sql Server 存储过程调用存储过程接收输出参数返回值

创建存储过程: ALTER PROCEDURE [dbo].[GetCustomers] (@rowcount INT OUTPUT) AS SELECT [CustomerID] ,[CompanyName] ,[ContactName] ,[ContactTitle] ,[Address] ,[City] ,[Region] ,[PostalCode] ,[Country] ,[Phone] ,[Fax] FROM [Northwind].[dbo].[Customers] SET @row

微信小程序 页面之间传参实例详解

微信小程序 传参: 实现效果图: 微信小程序在两个之间传参类似js传递url拼接参数,举个例子来说吧 input自己设置参数 //index.wxml <form bindsubmit="formSubmit" bindreset="formReset" class="myform"> <text class="prompt">给自己起个名字吧</text> <input placeh

微信小程序 动态传参实例详解

微信小程序 动态传参实例详解 在微信小程序的开发过程中经常会用到动态传参,比如根据某一页面传参的不同,加载不同的新的页面.接下来介绍下如何实现. 上一篇博客中介绍了如何用wx:for循环显示数组,一般情况下我们要实现的功能是点击不同的元素进入不同的页面,比如在另一个页面加载某个元素的详细信息. 跳转这里采用navigator跳转,在navigator跳转的链接上将参数加上去: index.wxml(根据点击页面的不同传递参数) <view class="item" wx:for=

angular使用post、get向后台传参的问题实例

一.问题的来源 我们都知道向后台传参可以使用get.put,其形式就类似于name=jyy&id=001.但是在ng中我却发现使用$http post进行异步传输的过程中后台是接收不到数据的.其实这个问题是因为请求头的缘故.在ng中默认的请求头是:"Content-Type":"application/json",也就是说传递参数是使用的就是json格式.但是后台默认的却是Content-Type': 'application/x-www-form-urle

AngulaJS路由 ui-router 传参实例

在这里分享我做的一个使用ui-router 传参的小demo 1.首先第一步设置入口文件index.html,注意加载的顺序,先加载包,再加载自己写的控制器. <!doctype html> <html lang="en" ng-app="routerApp"> <head> <meta charset="utf-8"> <meta name="viewport" cont

js调用Flex中的方法并向flex中传参及flex调用js示例

首先,有了一个swf文件,test.swf,同时也有一个自动生成的html文件,test.html. 然后,在另外一个文件,test.jsp中,通过iframe,引入了test.html,即引入了swf. 现在想要在test.jsp中,向flex传参,并调用flex中的方法,我采用的方法是: 首先,在jsp中写一个调用flex的方法,如下 复制代码 代码如下: function initSWF(){ //得到swf的object var obj = window.frames["rightfra