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

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());
        }

    }

}

 

服务器端目录:

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

  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
AspxZip 2.0 特点: 1.能够在支持 ASP.NET 的 Web 服务器上通过友好的 Web 界面方便地 压缩/压存放在服务器上的文档。 2.通用性极强,只要服务器支持 ASP.NET,就可以正常运行。 3.目前对 ZIP 格式档案文件提供完整支持,不久的将来,还将可以RAR、ARJ等压缩格式。 4.支持如设置口令,设置压缩比例等功能。 5.没有任何限制,更新到最新版本,支持有密码文件压。 如果你曾做过Web管理员的话,你会知道,通过 FTP 来备份/还原服务器上的大量零散文档(如10,000个HTML文档)是一件多么痛苦的事情!所以,现在有许多的管理员都想找一个能 在线打包压缩/压的Web程序一边方便管理。这就是我写这个 AspxZip 在线打包压缩/压缩程序的原始动机。 AspxZip 的设计目的是想通过友好的Web界面方便的对存放在远程Web服务器上的文档进行压缩打包和压缩操作,从而方便备份/还原Web服务器上的各种数据。目前, 网上确实有了一些号称支持在线压缩/压的 Web 程序,其中有用 ASP 编的,也有用 PHP 编的。但由于他们的工作原理都是通过调用 RAR.exe 或 7Zip.exe 第三方压缩/压程序进行 压缩/压操作的,只要服务器的安全设置设得比较好,Web程序就无法调用 RAR.exe 等程序而不能使用,所以通用性不强,大部分的虚拟主机都不能正常使用,更不用说要求很严的免费空间了。 所以,要想让它在任何服务器上都能正常使用,唯一的办法是:把压缩/压算法核心写到程序里面去!这就是 AspxZip 和其他在线压缩/压的Web程序的不同之处。其优 点是运行效率高,通用性极强,只要服务器支持 ASP.NET,就可以正常运行。 AspxZip 特点: 效率高,运行速度快。经测试,在我的个人网站(服务器并不怎么好)上运行时压缩速度平均为 10 MB/s,最高速度可达 25 MB/s。 能够在支持 ASP.NET 的 Web 服务器上通过友好的 Web 界面方便地 压缩/压存放在服务器上的文档。 通用性极强,只要服务器支持 ASP.NET,就可以正常运行。 目前对 ZIP 格式档案文件提供完整支持,不久的将来,还将可以RAR、ARJ等压缩格式。 支持如设置口令,设置压缩比例等功能。 注:本程序使用了 ICSharpCode.NET 提供的 SharpZipLib 压缩组件,在此对 ICSharpCode.NET 表示感谢。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值