如果服務器上安裝了RAR程序,那麼ASP.Net可以調用RAR實現文件壓縮與解壓縮。
不過要注意的是,由於Web程序不能直接調用客戶端的程序(除非用ActiveX,ActiveX幾乎被廢棄),所以如果要想實現讓用戶把本地文件用網頁解壓縮只有把文件上傳到服務器上再調用服務器上的RAR壓縮,同理要解壓縮本地的RAR文件可以把文件上傳到服務器解壓再拿回來。
本文講怎麼在服務器端的目錄解壓縮文件!
效果圖:
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281574.gif)
前台代碼:
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281682.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281609.gif)
<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.ASPx.cs" Inherits="_Default" %>
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
<html XMLns="http://www.w3.org/1999/xHtml" >
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
<head runat="server">
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
<title>服務器端解壓縮 清清月兒 http://blog.csdn.Net/21ASPnet/</title>
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
</head>
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
<body>
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
<form id="form1" runat="server">
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
<div>
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
<ASP:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="壓縮" />
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
<ASP:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="解壓縮" /></div>
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
</form>
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
</body>
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
</Html>
後台代碼:
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Data;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Configuration;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Web;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Web.Security;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Web.UI;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Web.UI.WebControls;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Web.UI.WebControls.WebParts;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Web.UI.HtmlControls;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.IO;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Runtime.InteropServices;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using Microsoft.Win32;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
using System.Diagnostics;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281683.gif)
public partial class _Default : System.Web.UI.Page
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281682.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281609.gif)
...{
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
protected void Page_Load(object sender, EventArgs e)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281621.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281726.gif)
...{
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
//清清月兒 http://blog.csdn.Net/21ASPnet/
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281741.gif)
}
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
protected void Button1_Click(object sender, EventArgs e)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281621.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281726.gif)
...{
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
//壓縮
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
String the_rar;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
RegistryKey the_Reg;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
Object the_Obj;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
String the_Info;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
ProcessStartInfo the_StartInfo;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
Process the_Process;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
try
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281621.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281726.gif)
...{
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Reg = Registry.ClassesRoot.OpenSubKey("Applications\WinRAR.exe\Shell\Open\Command");
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Obj = the_Reg.GetValue("");
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_rar = the_Obj.ToString();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Reg.Close();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_rar = the_rar.Substring(1, the_rar.Length - 7);
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Info = " a " + " 1.rar " + " " + "C:\1\1.txt";
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_StartInfo = new ProcessStartInfo();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_StartInfo.FileName = the_rar;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_StartInfo.Arguments = the_Info;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_StartInfo.WindowStyle = ProcessWindowstyle.Hidden;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_StartInfo.WorkingDirectory = "C:\1";//獲取或設置要啟動的進程的初始目錄。
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Process = new Process();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Process.StartInfo = the_StartInfo;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Process.Start();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
Response.Write("壓縮成功");
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281741.gif)
}
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
catch (Exception ex)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281621.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281726.gif)
...{
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
Response.Write(ex.ToString());
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281741.gif)
}
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281741.gif)
}
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
protected void Button2_Click(object sender, EventArgs e)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281621.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281726.gif)
...{
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
//解壓縮
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
String the_rar;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
RegistryKey the_Reg;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
Object the_Obj;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
String the_Info;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
ProcessStartInfo the_StartInfo;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
Process the_Process;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
try
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281621.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281726.gif)
...{
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Reg = Registry.ClassesRoot.OpenSubKey("Applications\WinRar.exe\Shell\Open\Command");
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Obj = the_Reg.GetValue("");
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_rar = the_Obj.ToString();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Reg.Close();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_rar = the_rar.Substring(1, the_rar.Length - 7);
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Info = " X " + " 1.rar " + " " + "C:\1";
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_StartInfo = new ProcessStartInfo();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_StartInfo.FileName = the_rar;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_StartInfo.Arguments = the_Info;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_StartInfo.WindowStyle = ProcessWindowstyle.Hidden;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Process = new Process();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Process.StartInfo = the_StartInfo;
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
the_Process.Start();
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
Response.Write("解壓縮成功");
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281741.gif)
}
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
catch (Exception ex)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281621.gif)
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281726.gif)
...{
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281689.gif)
Response.Write(ex.ToString());
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281741.gif)
}
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281741.gif)
}
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281732.gif)
}
服務器端目錄:
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281780.gif)
客戶端解壓縮的變通方法:
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011311281807.gif)