2009-12-02 /// 利用RAR.exe进行压缩 /// </summary> /// <param name="path">将要被压缩的文件夹(绝对路径)</param> /// <param name="rarPath">压缩后的 .rar 的存放目录(绝对路径)</param> /// <param name="rarName">压缩文件的名称(包括后缀)</param> /// <returns>true 或 false。压缩成功返回 true,反之,false。</returns> public static bool RARSave(string path, string rarPath, string rarName) { bool flag = false; string rarexe; //WinRAR.exe 的完整路径 RegistryKey regkey; //注册表键 Object regvalue; //键值 string cmd; //WinRAR 命令参数 ProcessStartInfo startinfo; Process process; try { regkey = Registry.ClassesRoot.OpenSubKey(@"Applications/WinRAR.exe/shell/open/command"); regvalue = regkey.GetValue(""); // 键值为 "d:/Program Files/WinRAR/WinRAR.exe" "%1" rarexe = regvalue.ToString(); regkey.Close(); rarexe = rarexe.Substring(1, rarexe.Length - 7); // d:/Program Files/WinRAR/WinRAR.exe Directory.CreateDirectory(path); //压缩命令,相当于在要压缩的文件夹(path)上点右键->WinRAR->添加到压缩文件->输入压缩文件名(rarName) cmd = string.Format("a {0} {1} -r", rarName, path); startinfo = new ProcessStartInfo(); startinfo.FileName = rarexe; startinfo.Arguments = cmd; //设置命令参数 startinfo.WindowStyle = ProcessWindowStyle.Hidden; //隐藏 WinRAR 窗口 startinfo.WorkingDirectory = rarPath; process = new Process(); process.StartInfo = startinfo; process.Start(); process.WaitForExit(); //无限期等待进程 winrar.exe 退出 if (process.HasExited) { flag = true; } process.Close(); } catch (Exception e) { throw e; } return flag; }