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

asp.net利用RAR实现文件压缩解压缩作者:清清月儿主页:http://blog.csdn.n网络
强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码

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

    }

}


 

服务器端目录:

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

本文来源21aspnet,由javajgs_com转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/2702

发表评论