C#调用RAR压缩与解压

         public   void  RARsave( string  patch, string  rarPatch, 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(@"ApplicationsWinRAR.exeShellOpenCommand");
                the_Obj 
= the_Reg.GetValue("");
                the_rar 
= the_Obj.ToString();
                the_Reg.Close();
                the_rar 
= the_rar.Substring(1, the_rar.Length - 7);
                Directory.CreateDirectory(patch);
                
//命令参数
                
//the_Info = " a    " + rarName + "  " + @"C:Test€70821.txt"; //文件压缩
                the_Info = " a    " + rarName + "  " + patch + "  -r"; ;
                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  unRarPatch, string  rarPatch, 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(@"ApplicationsWinRAR.exeShellOpenCommand");
            the_Obj 
= the_Reg.GetValue("");
            the_rar 
= the_Obj.ToString();
            the_Reg.Close();
            the_rar 
= the_rar.Substring(1, the_rar.Length - 7);
            Directory.CreateDirectory(Server.MapPath(unRarPatch));
            the_Info 
= "e   " + rarName + "  " + Server.MapPath(unRarPatch) + " -y";
            the_StartInfo 
= new ProcessStartInfo();
            the_StartInfo.FileName 
= the_rar;
            the_StartInfo.Arguments 
= the_Info;
            the_StartInfo.WindowStyle 
= ProcessWindowStyle.Hidden;
            the_StartInfo.WorkingDirectory 
= Server.MapPath(rarPatch);//获取压缩包路径
            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);
    }


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值