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

本文介绍如何使用ASP.NET调用服务器上的RAR程序来实现文件的压缩和解压缩功能。通过读取注册表获取RAR路径,并使用Process类以隐藏窗口的方式执行RAR命令。适用于需要在服务器端进行文件压缩解压缩的应用场景。

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

作者:清清月儿

主页:http://blog.youkuaiyun.com/21aspnet/ 时间:2007.6.13

如果服务器上安装了RAR程序,那么asp.net可以调用RAR实现文件压缩与解压缩。

不过要注意的是,由于Web程序不能直接调用客户端的程序(除非用ActiveX,ActiveX几乎被废弃),所以如果要想实现让用户把本地文件用网页解压缩只有把文件上传到服务器上再调用服务器上的RAR压缩,同理要解压缩本地的RAR文件可以把文件上传到服务器解压再拿回来。

本文讲怎么在服务器端的目录解压缩文件!

效果图:

前台代码:
<% ... @PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default" %>

<! DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//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.youkuaiyun.com/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
... {
protectedvoidPage_Load(objectsender,EventArgse)
...{
//清清月儿http://blog.youkuaiyun.com/21aspnet/
}

protectedvoidButton1_Click(objectsender,EventArgse)
...{
//压缩
Stringthe_rar;
RegistryKeythe_Reg;
Objectthe_Obj;
Stringthe_Info;
ProcessStartInfothe_StartInfo;
Processthe_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
=newProcessStartInfo();
the_StartInfo.FileName
=the_rar;
the_StartInfo.Arguments
=the_Info;
the_StartInfo.WindowStyle
=ProcessWindowStyle.Hidden;
the_StartInfo.WorkingDirectory
="C:\1";//获取或设置要启动的进程的初始目录。
the_Process=newProcess();
the_Process.StartInfo
=the_StartInfo;
the_Process.Start();
Response.Write(
"压缩成功");
}

catch(Exceptionex)
...{
Response.Write(ex.ToString());
}

}

protectedvoidButton2_Click(objectsender,EventArgse)
...{
//解压缩
Stringthe_rar;
RegistryKeythe_Reg;
Objectthe_Obj;
Stringthe_Info;
ProcessStartInfothe_StartInfo;
Processthe_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
=newProcessStartInfo();
the_StartInfo.FileName
=the_rar;
the_StartInfo.Arguments
=the_Info;
the_StartInfo.WindowStyle
=ProcessWindowStyle.Hidden;
the_Process
=newProcess();
the_Process.StartInfo
=the_StartInfo;
the_Process.Start();
Response.Write(
"解压缩成功");
}

catch(Exceptionex)
...{
Response.Write(ex.ToString());
}

}

}

服务器端目录:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值