asp.net利用RAR实现文件压缩解压缩

王朝asp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

如果服务器上安装了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());

}

}

}

http://blog.csdn.net/21aspnet/archive/2007/06/13/1649810.aspx

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航