public void RARsave(string rarPatch, string rarFiles,string  patch,string rarName)
        {
            String the_rar;
            RegistryKey the_Reg;
            Object the_Obj;
            String the_Info;
            ProcessStartInfo the_StartInfo;
            Process the_Process;
            try
            {
                the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\\WinRAR.exe\\Shell\\Open\\Command");
                the_Obj = the_Reg.GetValue("");
                the_rar = the_Obj.ToString();
                the_Reg.Close();
                the_rar = the_rar.Substring(1, the_rar.Length - 7);
                if (!Directory.Exists(patch))
                Directory.CreateDirectory(patch);
                //命令参数

//the_Info = " a  c:\\test.rar a.txt -r"; //文件压缩

the_Info = string.Format(" a -df {0}\\{1}  {2}  -r", patch, rarName, rarFiles);// " a " + rarName + " " + patch;
                the_StartInfo = new ProcessStartInfo();
                the_StartInfo.FileName = the_rar;
                the_StartInfo.Arguments = the_Info;
                the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                //打包文件存放目录

the_StartInfo.WorkingDirectory = rarPatch;
                the_Process = new Process();
                the_Process.StartInfo = the_StartInfo;
                the_Process.Start();
                the_Process.WaitForExit();
                the_Process.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

public string unRAR(string rarPath, string rarName, string unRarPath)
        {
            String the_rar;
            RegistryKey the_Reg;
            Object the_Obj;
            String the_Info;
            ProcessStartInfo the_StartInfo;
            Process the_Process;
            try
            {
                the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\\WinRAR.exe\\Shell\\Open\\Command");
                the_Obj = the_Reg.GetValue("");
                the_rar = the_Obj.ToString();
                the_Reg.Close();
                the_rar = the_rar.Substring(1, the_rar.Length - 7);
                if (!Directory.Exists(unRarPath + "\\" + rarName.Substring(0, rarName.LastIndexOf(".")-1)))
                    Directory.CreateDirectory(unRarPath + "\\" + rarName.Substring(0, rarName.LastIndexOf(".")-1));
                the_Info = string.Format("x {0} {1}\\{2} -y", rarName, unRarPath, rarName.Substring(0, rarName.LastIndexOf(".")-1));
                the_StartInfo = new ProcessStartInfo();
                the_StartInfo.FileName = the_rar;
                the_StartInfo.Arguments = the_Info;
                the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                the_StartInfo.WorkingDirectory = rarPath;//获取压缩包路径

the_Process = new Process();
                the_Process.StartInfo = the_StartInfo;
                the_Process.Start();
                the_Process.WaitForExit();
                the_Process.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return "";//Server.MapPath(unRarPatch);
        }
        public string unRAR(string rarPath, string rarName, string unRarPath, string unRarPathName)
        {
            String the_rar;
            RegistryKey the_Reg;
            Object the_Obj;
            String the_Info;
            ProcessStartInfo the_StartInfo;
            Process the_Process;
            try
            {
                the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\\WinRAR.exe\\Shell\\Open\\Command");
                the_Obj = the_Reg.GetValue("");
                the_rar = the_Obj.ToString();
                the_Reg.Close();
                the_rar = the_rar.Substring(1, the_rar.Length - 7);
                //if (!Directory.Exists(unRarPath + "\\" + unRarPathName))
                //    Directory.CreateDirectory(unRarPath + "\\" + unRarPathName);
                //the_Info = string.Format("x {0} {1}\\{2} -y", rarName, unRarPath, unRarPathName);

if (!Directory.Exists(unRarPath ))
                    Directory.CreateDirectory(unRarPath);
                the_Info = string.Format("x {0} {1} -y", rarName, unRarPath);
                the_StartInfo = new ProcessStartInfo();
                the_StartInfo.FileName = the_rar;
                the_StartInfo.Arguments = the_Info;
                the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                the_StartInfo.WorkingDirectory = rarPath;//获取压缩包路径

the_Process = new Process();
                the_Process.StartInfo = the_StartInfo;
                the_Process.Start();
                the_Process.WaitForExit();
                the_Process.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return "";//Server.MapPath(unRarPatch);
        }

RARsave("c:\\emrbs", "1.txt 2.txt", "c:\\test", "test.rar");

unRAR("d:\\","f.rar","d:\\ftest");

/压缩程序安装路径

            string pathExe = Application.StartupPath + @"\WinRAR.exe";  
            Process p = new Process();  
            p.StartInfo.FileName = pathExe;  
            p.StartInfo.Arguments = @"a -as -r -afzip -ed -hp123 -ibck -inul -m5 -mt5 d:\kldder d:\easyui";  
            p.StartInfo.CreateNoWindow = true;  
            p.StartInfo.RedirectStandardInput = true;  
            p.StartInfo.RedirectStandardError = false;  
            p.StartInfo.RedirectStandardOutput = true;  
            p.StartInfo.UseShellExecute = false;  
            p.StartInfo.ErrorDialog = false;  
            p.Start();  
            int idx = 1;  
            while (!p.HasExited)  
            {  
                idx++;  
                p.WaitForExit(500);  
                if (idx == 5)  
                {  
                    p.Kill();  
                }  
            }  
            p.Close();  
            p.Dispose();  
            /* 
             * <命令> -<开关1> -<开关N> <压缩文件 > <文件...> <@列表文件...> <解压路径\> 
             *压缩 a      a -as -ed -inul -afrar -df -ibck -m4 -mt3 -or -y -hp123 d:\aa d:\aa.txt 
             *解压 x      x -hp123 -ibck -inul -y -mt5 d:\aa.rar a:\ 
             *a d:\Info.zip D:\easyui 
             *-af 指定格式 -afzip -afrar 
             *-as 在当前添加的文件列表中不存在的被压缩文件,将会从压缩文件中删除 
             *-df 压缩后删除源文件 
             *-dr 删除到回收站 
             *-ed 不添加空文件夹 
             *-hp 添加密码 -hp123456 
             *-ibck 后台运行 
             *-inul 禁止错误信息 
             *-loff 压缩完成后 关闭电源 
             *-m0 存储 添加文件到压缩文件但是不压缩   
             *-m1 最快 最快速的方法 ( 最低的压缩比)  
             *-m2 快速 快速压缩方法  
             *-m3 标准 标准 (默认 ) 压缩方法  
             *-m4 较好 较好的压缩方法 (较高的压缩比)  
             *-m5 最优 最优的压缩方法 (最高压缩比但是速度也最慢) 
             *-mtN 线程 -mt5 1~32 
             *-or 自动重命名文件 
             *-r 连同子文件 
             *-z 压缩后测试文件 
             *-y 所有弹窗选择"是" 
             */  
 
*可以直接将winrar.exe 拷贝到 根目录下运行
*不弹窗只需要打开开光 -ibck -inul 即可

RAR参数:

一、压缩命令
1、将temp.txt压缩为temp.rarrar a temp.rar temp.txt 
2、将当前目录下所有文件压缩到temp.rarrar a temp.rar *.* 
3、将当前目录下所有文件及其所有子目录压缩到temp.rarrar a temp.rar *.* -r 
4、将当前目录下所有文件及其所有子目录压缩到temp.rar,并加上密码123rar a temp.rar *.* -r -p123

二、解压命令
1、将temp.rar解压到c:/temp目录rar e temp.rar c:/temprar e *.rar c:/temp(支持批量操作) 
2、将temp.rar解压到c:/temp目录,并且解压后的目录结构和temp.rar中的目录结构一

压缩目录test及其子目录的文件内容 
Wzzip test.zip test -r -P 
WINRAR A test.rar test -r

删除压缩包中的*.txt文件 
Wzzip test.zip *.txt -d 
WinRAR d test.rar *.txt

刷新压缩包中的文件,即添加已经存在于压缩包中但更新的文件 
Wzzip test.zip test -f 
Winrar f test.rar test

更新压缩包中的文件,即添加已经存在于压缩包中但更新的文件以及新文件 
Wzzip test.zip test -u 
Winrar u test.rar test

移动文件到压缩包,即添加文件到压缩包后再删除被压缩的文件 
Wzzip test.zip -r -P -m 
Winrar m test.rar test -r

添加全部 *.exe 文件到压缩文件,但排除有 a或b 
开头名称的文件 
Wzzip test *.exe -xf*.* -xb*.* 
WinRAR a test *.exe -xf*.* -xb*.*

加密码进行压缩 
Wzzip test.zip test 
-s123。注意密码是大小写敏感的。在图形界面下打开带密码的压缩文件,会看到+号标记(附图1)。 
WINRAR A test.rar test -p123 
-r。注意密码是大小写敏感的。在图形界面下打开带密码的压缩文件,会看到*号标记(附图2)。

按名字排序、以简要方式列表显示压缩包文件 
Wzzip test.zip -vbn 
Rar l test.rar

锁定压缩包,即防止未来对压缩包的任何修改 
无对应命令 
Winrar k test.rar

创建360kb大小的分卷压缩包 
无对应命令 
Winrar a -v360 test

带子目录信息解压缩文件 
Wzunzip test -d 
Winrar x test -r

不带子目录信息解压缩文件 
Wzunzip test 
Winrar e test

解压缩文件到指定目录,如果目录不存在,自动创建 
Wzunzip test newfolder 
Winrar x test newfolder

解压缩文件并确认覆盖文件 
Wzunzip test -y 
Winrar x test -y

解压缩特定文件 
Wzunzip test *.txt 
Winrar x test *.txt

解压缩现有文件的更新文件 
Wzunzip test -f 
Winrar x test -f

解压缩现有文件的更新文件及新文件 
Wzunzip test -n 
Winrar x test -u

批量解压缩文件 
Wzunzip *.zip 
WinRAR e *.rar

C#调用RAR压缩与解压的更多相关文章

  1. java压缩文件解压:调用WinRAR5命令强于自己写代码实现

    最近,手上维护着一个几年前的系统,技术是用的JSP+Strust2,系统提供了rar和zip两种压缩格式的解压功能,后台是用java实现的 1.解压rar格式,采用的是java-unrar-0.3.j ...

  2. 【JNI】OPUS压缩与解压的JNI调用(.DLL版本)

    OPUS压缩与解压的JNI调用(.DLL版本) 一.写在开头: 理论上讲,这是我在博客园的第一篇原创的博客,之前也一直想找个地方写点东西,把最近做的一些东西归纳总结下,但是一般工程做完了一高兴就把东西 ...

  3. Linux学习之CentOS(十九)------linux 下压缩与解压之 tar、gzip、bzip2、zip、rar

    将文件存储到归档文件中或者从归档文件中获取原始文件,以及为文件创建归档文件 tar [option] [modifiers] [file-list] 参数 file-list是tar进行归档和提取的文 ...

  4. linux中tar命令(打包、压缩、解压)、zip和unzip、rar多种压缩文件

    一.名词解释 打包:将一大堆文件或目录变成一个总的文件[tar命令] 压缩:将一个大的文件通过一些压缩算法变成一个小文件[gzip,bzip2等] Linux中很多压缩程序只能针对一个文件进行压缩,这 ...

  5. XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)

    XML序列化   #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...

  6. C#调用7z实现文件的压缩与解压

    1.关于7z 首先在这里先介绍一下7z压缩软件,7z是一种主流的 压缩格式,它拥有极高的压缩比.在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的档案格式.主要有以下特点: 来源且模块化的组 ...

  7. linux下文件压缩与解压操作

    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap.可 ...

  8. Linux下常用压缩格式的压缩与解压方法

    .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) --------------------- ...

  9. linux下tar gz bz2 tgz z等众多压缩文件的压缩与解压方法

    Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的.生成tar包后,就可以用其它的程序来进 行压缩了,所以首先就来讲讲ta ...

随机推荐

  1. 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat

    阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat  执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...

  2. Java中JDBC连接数据库代码和步骤详解总结

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤:         1.加载JDBC驱动程序:         在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Jav ...

  3. HTTP缓存&代理

    一.与缓存有关的Header 1.Request If-Modified-Since:  缓存文件的最后修改时间 If-None-Match:                             ...

  4. Redis数据类型介绍

    Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...

  5. Instsrv.exe和Srvany.exe的使用方法

    要把应用程序添加为服务,你需要两个小软件:Instsrv.exe和Srvany.exe.Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行.这两个软件都包含 ...

  6. php页面如何增加下载软件功能

    php <?php $array = parse_ini_file("sample.ini"); ?> <a id="btnDownloadFull&q ...

  7. 2003-can't connect to mysql server on 'localhost'(10061) MySQL错误

    开始遇到这个问题,我以为是服务没链接,在网上查了下错误,但没解决,后来链接了下端口,结果发现我原来我 端口不对,MySQL端口默认是3306我安装时端口是设的3307.希望能帮到遇到这种问题的人

  8. 制作自己的嵌入式Linux电脑_转

    制作自己的嵌入式Linux电脑 http://os.51cto.com/art/201409/450334.htm 原文链接:http://blog.jobbole.com/75414/ 包含器件选择 ...

  9. servlet的匹配规则,兼谈/与/*

    客户端通过URL地址访问服务器(servlet容器)资源,所以servlet若要能对外提供服务,必须要将程序按照java规范将其映射到对应的URL上,映射的规则是需要开发人员在WEB.XML中显示指定 ...

  10. linux下设置固定IP

    编辑网卡配置文件 vi /etc/sysconfig/network-script/ifcfg-eth0 进入编辑模式 按i键进行编辑修改 DEVICE=eth0 #物理设备名 IPADDR=192. ...