zoukankan      html  css  js  c++  java
  • asp.net利用RAR实现文件压缩解压缩

    如果服务器上安装了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("ApplicationsWinRAR.exeShellOpenCommand");
                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:.txt";
                the_StartInfo 
    = new ProcessStartInfo();
                the_StartInfo.FileName 
    = the_rar;
                the_StartInfo.Arguments 
    = the_Info;
                the_StartInfo.WindowStyle 
    = ProcessWindowStyle.Hidden;
                the_StartInfo.WorkingDirectory 
    = "C:";//获取或设置要启动的进程的初始目录。
                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("ApplicationsWinRar.exeShellOpenCommand");
                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:";
                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());
            }

        }

    }

    服务器端目录:

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

  • 相关阅读:
    包含min函数的栈
    栈的应用
    给定金额m和红包数量n
    顺时针打印矩阵
    二叉树的镜像
    elementUI table表头错位问题
    金额格式化
    ajax跨域问题全解
    JavaScript 的 this 原理
    vue技术分享-你可能不知道的7个秘密
  • 原文地址:https://www.cnblogs.com/cxy521/p/1258494.html
Copyright © 2011-2022 走看看