Si le programme RAR est installé sur le serveur, asp.net peut appeler RAR pour compresser et décompresser les fichiers.
Cependant, il convient de noter que comme les programmes Web ne peuvent pas appeler directement les programmes clients (à moins d'utiliser ActiveX, ActiveX est presque abandonné), donc si vous souhaitez permettre aux utilisateurs de décompresser des fichiers locaux à l'aide de pages Web, ils ne peuvent télécharger les fichiers que sur le serveur Web. serveur puis appeler le serveur. Compression RAR De la même manière, si vous souhaitez décompresser un fichier RAR local, vous pouvez télécharger le fichier sur le serveur pour le décompresser puis le récupérer.
Cet article explique comment décompresser les fichiers dans le répertoire côté serveur !
Code frontal :
<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ /FR" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<head runat="serveur">
<title>Décompression côté serveur Qingqing Yue'er http://blog.csdn.net/21aspnet/</title >
</tête>
<corps>
<form id="form1" runat="serveur">
<div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Compression" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Décompresser" /></div>
</form>
</corps>
</html>
Code backend :
utilisation du système ;
en utilisant System.Data ;
en utilisant System.Configuration ;
en utilisant System.Web ;
en utilisant System.Web.Security ;
en utilisant System.Web.UI ;
en utilisant System.Web.UI.WebControls ;
en utilisant System.Web.UI.WebControls.WebParts ;
en utilisant System.Web.UI.HtmlControls ;
en utilisant System.IO ;
en utilisant System.Runtime.InteropServices ;
en utilisant Microsoft.Win32 ;
en utilisant System.Diagnostics ;
classe partielle publique _Default : System.Web.UI.Page
...{
protected void Page_Load (expéditeur de l'objet, EventArgs e)
...{
//Qingqingyueerhttp://blog.csdn.net/21aspnet/
}
protected void Button1_Click (expéditeur de l'objet, EventArgs e)
...{
//compression
Chaîne the_rar;
Clé de registre the_Reg ;
Objet the_Obj;
Chaîne the_Info ;
ProcessStartInfo the_StartInfo ;
Traitez le_Process ;
essayer
...{
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 = nouveau ProcessStartInfo();
the_StartInfo.FileName = the_rar;
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden ;
the_StartInfo.WorkingDirectory = "C:1";//Obtenir ou définir le répertoire initial du processus à démarrer.
the_Process = nouveau processus ();
the_Process.StartInfo = the_StartInfo ;
the_Process.Start();
Response.Write("Compression réussie");
}
attraper (Exception ex)
...{
Réponse.Write(ex.ToString());
}
}
protected void Button2_Click (expéditeur de l'objet, EventArgs e)
...{
//décompresser
Chaîne the_rar;
Clé de registre the_Reg ;
Objet the_Obj;
Chaîne the_Info ;
ProcessStartInfo the_StartInfo ;
Traitez le_Process ;
essayer
...{
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 = nouveau ProcessStartInfo();
the_StartInfo.FileName = the_rar;
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden ;
the_Process = nouveau processus ();
the_Process.StartInfo = the_StartInfo ;
the_Process.Start();
Response.Write("Décompression réussie");
}
attraper (Exception ex)
...{
Réponse.Write(ex.ToString());
}
}
}
http://blog.csdn.net/21aspnet/archive/2007/06/13/1649810.aspx