Asp.net調用RAR壓縮文件與解壓文件源碼

//壓縮
protected void btnY_Click(object sender, EventArgs e)
{
 string rar;
 RegistryKey reg;
 string args;
 ProcessStartInfo procStart;
 Process process;
 try
 {
  reg = Registry.ClassesRoot.OpenSubKey(@"Applications/WinRAR.exe/Shell/Open/Command");
  rar = reg.GetValue("").ToString();//獲取註冊表rar安裝路徑
  reg.Close();
  rar = rar.Substring(1, rar.Length - 7);//獲取rar安裝路徑
  args = "a -inul -y G://temp.rar G://1.txt";//這裏爲rar的壓縮命令格式(也可以自行擴展)
  procStart = new ProcessStartInfo();
  procStart.FileName = rar;
  procStart.Arguments = args;//參數
  procStart.WindowStyle = ProcessWindowStyle.Hidden;//窗口狀態
  procStart.WorkingDirectory = Server.MapPath(""); ;//獲取或設置要啓動的進程的初始目錄。
  process = new Process();
  process.StartInfo = procStart;
  process.Start();
  Response.Write("<script>alert('壓縮成功')</script>");
 }
 catch (Exception ex)
 {
  Response.Write(ex.ToString());
 }
}
//解壓
protected void btnJ_Click(object sender, EventArgs e)
{
 string rar;
 RegistryKey reg;
 string args;
 ProcessStartInfo startInfo;
 Process process;
 try
 {
  reg = Registry.ClassesRoot.OpenSubKey(@"Applications/WinRar.exe/Shell/Open/Command");
  rar = reg.GetValue("").ToString();
  reg.Close();
  rar = rar.Substring(1, rar.Length - 7);
  args = " X E://temp.rar E://";
  startInfo = new ProcessStartInfo();
  startInfo.FileName = rar;
  startInfo.Arguments = args;
  startInfo.WindowStyle = ProcessWindowStyle.Hidden;
  process = new Process();
  process.StartInfo = startInfo;
  process.Start();
  Response.Write("<script>alert('解壓成功')</script>");
 }
 catch (Exception ex)
 {
  Response.Write(ex.ToString());
 }
}

例:把E:/web/目錄下的所有東西打包爲1.rar放到E:/web/目錄下,以便下載
"C:/Program Files/WinRAR/Rar.exe" a -k -r -s -m1 E:/web/1.rar E:/web/
參數說明:
a 添加文件到壓縮文件中
-k 鎖定壓縮文件
-s產生固體存檔,這樣可以增大壓縮比
-r包括子目錄
-m1 設置壓縮比
   -m0   存儲      添加到壓縮文件時不壓縮文件。
   -m1   最快      使用最快方式(低壓縮)
   -m2   較快      使用快速壓縮方式
   -m3   標準      使用標準(默認)壓縮方式
   -m4   較好      使用較好壓縮方式(較好壓縮,但是慢)
   -m5   最好      使用最大壓縮方式(最好的壓縮,但是最慢)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章