Si el programa RAR está instalado en el servidor, entonces asp.net puede llamar a RAR para comprimir y descomprimir archivos.
Sin embargo, debe tenerse en cuenta que, dado que los programas web no pueden llamar directamente a los programas cliente (a menos que se use ActiveX, ActiveX está casi abandonado), si desea permitir a los usuarios descomprimir archivos locales usando páginas web, solo pueden cargar los archivos en el servidor y luego activar la compresión RAR. De la misma manera, si desea descomprimir un archivo RAR local, puede cargar el archivo en el servidor para descomprimirlo y luego recuperarlo.
¡Este artículo explica cómo descomprimir archivos en el directorio del lado del servidor!
Código de interfaz:
<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transicional/ /ES" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<head runat="servidor">
<title>Descompresión del lado del servidor Qingqing Yue'er http://blog.csdn.net/21aspnet/ </title>
</cabeza>
<cuerpo>
<formulario id="form1" runat="servidor">
<div>
<asp:Botón ID="Botón1" runat="servidor" OnClick="Botón1_Click" Text="Compresión" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Descomprimir" /></div>
</formulario>
</cuerpo>
</html>
Código de backend:
usando System;
usando System.Data;
usando System.Configuration;
usando System.Web;
utilizando System.Web.Security;
utilizando System.Web.UI;
usando System.Web.UI.WebControls;
usando System.Web.UI.WebControls.WebParts;
usando System.Web.UI.HtmlControls;
usando System.IO;
usando System.Runtime.InteropServices;
utilizando Microsoft.Win32;
utilizando System.Diagnostics;
clase parcial pública _Default: System.Web.UI.Page
...{
Page_Load vacío protegido (remitente del objeto, EventArgs e)
...{
//Qingqingyueerhttp://blog.csdn.net/21aspnet/
}
Botón vacío protegido1_Click (remitente del objeto, EventArgs e)
...{
//compresión
Cadena the_rar;
Clave de registro the_Reg;
Objeto the_Obj;
Cadena the_Info;
ProcessStartInfo the_StartInfo;
Procesar el_Proceso;
intentar
...{
the_Reg = Registry.ClassesRoot.OpenSubKey("AplicacionesWinRAR.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 = nueva ProcessStartInfo();
the_StartInfo.FileName = the_rar;
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
the_StartInfo.WorkingDirectory = "C:1";//Obtiene o establece el directorio inicial del proceso que se iniciará.
the_Process = nuevo Proceso();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
Response.Write("Compresión exitosa");
}
captura (Excepción ex)
...{
Response.Write(ex.ToString());
}
}
Botón vacío protegido2_Click (remitente del objeto, EventArgs e)
...{
//descomprimir
Cadena the_rar;
Clave de registro the_Reg;
Objeto the_Obj;
Cadena the_Info;
ProcessStartInfo the_StartInfo;
Procesar el_Proceso;
intentar
...{
the_Reg = Registry.ClassesRoot.OpenSubKey("AplicacionesWinRar.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 = nueva ProcessStartInfo();
the_StartInfo.FileName = the_rar;
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
the_Process = nuevo Proceso();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
Response.Write("Descompresión exitosa");
}
captura (Excepción ex)
...{
Response.Write(ex.ToString());
}
}
}
http://blog.csdn.net/21aspnet/archive/2007/06/13/1649810.aspx