/// <summary>
/// 压缩文件
/// </summary>
/// <param name="patch">被压缩文件或其所在目录</param>
/// <param name="rarPatch">压缩后文件存放目录</param>
/// <param name="rarName">压缩后文件名字</param>
private void RARsave(string patch, string rarPatch, string rarName)
{
String the_rar;
Microsoft.Win32.RegistryKey the_Reg;
Object the_Obj;
String the_Info;
System.Diagnostics.ProcessStartInfo the_StartInfo;
System.Diagnostics.Process the_Process;
try
{
string strCompressway = string.Empty;
if (this.IsCompress == "1" && this.CompressWay == "WinRAR")
strCompressway = @"WinRAR";
else if (this.IsCompress == "1" && this.CompressWay == "WinZIP")
strCompressway = @"WinZIP";
else
return;
the_Reg = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(strCompressway);
if (the_Reg == null)
{
MessageBox.Show("请安装WinRAR或者WinZIP软件!");
return;
}
the_Obj = the_Reg.GetValue("");
the_rar = the_Obj.ToString();
the_Reg.Close();
//System.IO.Directory.CreateDirectory(patch);
the_rar = the_rar.Substring(0, the_rar.Length - 5);
//命令参数
the_Info = " a " + rarName + " " + patch + " -r";
the_StartInfo = new System.Diagnostics.ProcessStartInfo();
the_StartInfo.FileName = the_rar;//;"WinRar"
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
//打包文件存放目录
the_StartInfo.WorkingDirectory = rarPatch;
the_Process = new System.Diagnostics.Process();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
the_Process.WaitForExit();
the_Process.Close();
}
catch (Exception ex)
{
throw ex;
}
}