asp.net利用RAR实现文件压缩解压缩(转)
生活随笔
收集整理的這篇文章主要介紹了
asp.net利用RAR实现文件压缩解压缩(转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果服務器上安裝了RAR程序,那么asp.net可以調用RAR實現文件壓縮與解壓縮。
不過要注意的是,由于Web程序不能直接調用客戶端的程序(除非用ActiveX,ActiveX幾乎被廢棄),所以如果要想實現讓用戶把本地文件用網頁解壓縮只有把文件上傳到服務器上再調用服務器上的RAR壓縮,同理要解壓縮本地的RAR文件可以把文件上傳到服務器解壓再拿回來。
本文講怎么在服務器端的目錄解壓縮文件!
效果圖:
<%...@?Page?Language="C#"?AutoEventWireup="true"??CodeFile="Default.aspx.cs"?Inherits="_Default"?%>
<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html?xmlns="http://www.w3.org/1999/xhtml"?>
<head?runat="server">
????<title>服務器端解壓縮??清清月兒?http://blog.csdn.net/21aspnet/</title>
</head>
<body>
????<form?id="form1"?runat="server">
????<div>
????????<asp:Button?ID="Button1"?runat="server"?OnClick="Button1_Click"?Text="壓縮"?/>
????????<asp:Button?ID="Button2"?runat="server"?OnClick="Button2_Click"?Text="解壓縮"?/></div>
????</form>
</body>
</html>
?
后臺代碼:
using?System;using?System.Data;
using?System.Configuration;
using?System.Web;
using?System.Web.Security;
using?System.Web.UI;
using?System.Web.UI.WebControls;
using?System.Web.UI.WebControls.WebParts;
using?System.Web.UI.HtmlControls;
using?System.IO;
using?System.Runtime.InteropServices;
using?Microsoft.Win32;
using?System.Diagnostics;
public?partial?class?_Default?:?System.Web.UI.Page?
...{
????protected?void?Page_Load(object?sender,?EventArgs?e)
????...{
????????//清清月兒?http://blog.csdn.net/21aspnet/
????}
????protected?void?Button1_Click(object?sender,?EventArgs?e)
????...{
????????//壓縮
????????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????"?+?"?1.rar?"?+?"??"?+?"C:\1\1.txt";
????????????the_StartInfo?=?new?ProcessStartInfo();
????????????the_StartInfo.FileName?=?the_rar;
????????????the_StartInfo.Arguments?=?the_Info;
????????????the_StartInfo.WindowStyle?=?ProcessWindowStyle.Hidden;
????????????the_StartInfo.WorkingDirectory?=?"C:\1";//獲取或設置要啟動的進程的初始目錄。
????????????the_Process?=?new?Process();
????????????the_Process.StartInfo?=?the_StartInfo;
????????????the_Process.Start();
????????????Response.Write("壓縮成功");
????????}
????????catch?(Exception?ex)
????????...{
????????????Response.Write(ex.ToString());
????????}
????}
????protected?void?Button2_Click(object?sender,?EventArgs?e)
????...{
????????//解壓縮
????????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?"?+?"?1.rar?"?+?"?"?+?"C:\1";
????????????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();
????????????Response.Write("解壓縮成功");
????????}
????????catch?(Exception?ex)
????????...{
????????????Response.Write(ex.ToString());
????????}
????}
}
?
服務器端目錄:
客戶端解壓縮的變通方法:
轉載于:https://www.cnblogs.com/gjahead/archive/2007/06/18/788120.html
總結
以上是生活随笔為你收集整理的asp.net利用RAR实现文件压缩解压缩(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软总裁比尔.盖茨给即将走出学校、踏入社
- 下一篇: 初探SQL Server 2008商业智