您的位置:首页 > 编程语言 > ASP

asp.net利用RAR实现文件压缩解压缩【月儿原创】

2008-09-20 18:12 1096 查看
asp.net利用RAR实现文件压缩解压缩

作者:清清月儿
主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.13
如果服务器上安装了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());


}


}


}



服务器端目录:




客户端解压缩的变通方法:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: