zoukankan      html  css  js  c++  java
  • C# rar 压缩和解压缩调用

           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");

  • 相关阅读:
    PHP如何计算两个时间之间相差多少时分秒
    关于php如何连贯操作类方法(以数据库为例)
    php中递归创建目录
    John细说PHP的验证码
    PHP内部函数使用外部变量的方法
    php中call_user_func_array()的使用
    linux-Centos6.5中nginx1.63源码安装
    shopnc 商城源码阅读笔记-缓存技术
    PHP引用传值规范问题
    shopnc 商城源码阅读笔记--开篇概述
  • 原文地址:https://www.cnblogs.com/bestsaler/p/1835532.html
Copyright © 2011-2022 走看看