WinRar API 调用实现压缩解压缩文件

    技术2022-05-19  22

     #region 压缩文件

            /// <summary>        /// 压缩文件        /// </summary>        /// <param name="DFilePath">需要压缩的文件夹或者单个文件</param>        /// <param name="DRARName">生成压缩文件的文件名</param>        /// <param name="DRARPath">生成压缩文件保存路径</param>        /// <returns></returns>        protected bool RAR(string DFilePath, string DRARName, string DRARPath)        {            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);                the_Info = " a    " + " " + DRARName + "  " + DFilePath; //命令 + 压缩后文件名 + 被压缩的文件或者路径                the_StartInfo = new ProcessStartInfo();                the_StartInfo.FileName = the_rar;                the_StartInfo.Arguments = the_Info;                the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;                the_StartInfo.WorkingDirectory = DRARPath; //RaR文件的存放目录。                the_Process = new Process();                the_Process.StartInfo = the_StartInfo;                the_Process.Start();                return true;            }            catch (Exception ex)            {                return false;            }        }

            #endregion

            #region 解压缩到指定文件夹        /// <summary>        /// 解压缩到指定文件夹         /// </summary>        /// <param name="RARFilePath">压缩文件存在的目录 </param>        /// <param name="RARFileName">压缩文件名称 </param>        /// <param name="UnRARFilePath">解压到文件夹</param>        /// <returns></returns>        protected bool UnRAR(string RARFilePath, string RARFileName, string UnRARFilePath)        {            //解压缩            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);                the_Info = @" X " + " " + RARFilePath + RARFileName + " " + UnRARFilePath;                the_StartInfo = new ProcessStartInfo();                the_StartInfo.FileName = the_rar;                the_StartInfo.Arguments = the_Info;                the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;                the_Process = new Process();                the_Process.StartInfo = the_StartInfo;                the_Process.Start();                return true;            }            catch (Exception ex)            {                return false;            }

            }        #endregion


    最新回复(0)