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

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

作者:清清月儿

主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.13

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

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

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

效果图:
asp.net利用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.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
... {
protectedvoidPage_Load(objectsender,EventArgse)
...{
//清清月儿http://blog.csdn.net/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());
}

}

}

服务器端目录:
asp.net利用RAR实现文件压缩解压缩【月儿原创】

客户端解压缩的变通方法:
asp.net利用RAR实现文件压缩解压缩【月儿原创】

你可能感兴趣的:(.net,UI,Web,asp.net,asp)