If the RAR program is installed on the server, then asp.net can call RAR to compress and decompress files.
However, it should be noted that since Web programs cannot directly call client programs (unless ActiveX is used, ActiveX is almost abandoned), so if you want to allow users to decompress local files using web pages, they can only upload the files to the server and then call the server. RAR compression on. In the same way, if you want to decompress a local RAR file, you can upload the file to the server to decompress it and then get it back.
This article explains how to decompress files in the server-side directory!
Frontend code:
<%...@ 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>Server-side decompression Qingqing Yue'er http://blog.csdn.net/21aspnet/</title >
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Compression" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Unzip" /></div>
</form>
</body>
</html>
Backend code:
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)
...{
//Qingqingyueerhttp://blog.csdn.net/21aspnet/
}
protected void Button1_Click(object sender, EventArgs e)
...{
//compression
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:11.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";//Get or set the initial directory of the process to be started.
the_Process = new Process();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
Response.Write("Compression successful");
}
catch (Exception ex)
...{
Response.Write(ex.ToString());
}
}
protected void Button2_Click(object sender, EventArgs e)
...{
//decompress
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: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("Decompression successful");
}
catch (Exception ex)
...{
Response.Write(ex.ToString());
}
}
}
http://blog.csdn.net/21aspnet/archive/2007/06/13/1649810.aspx