Wenn das RAR-Programm auf dem Server installiert ist, kann asp.net RAR aufrufen, um Dateien zu komprimieren und zu dekomprimieren.
Es ist jedoch zu beachten, dass Webprogramme Client-Programme nicht direkt aufrufen können (es sei denn, ActiveX wird verwendet, ActiveX wird fast aufgegeben). Wenn Sie Benutzern also erlauben möchten, lokale Dateien über Webseiten zu dekomprimieren, können sie die Dateien nur auf hochladen Wenn Sie eine lokale RAR-Datei dekomprimieren möchten, können Sie sie auf den Server hochladen und dann die RAR-Komprimierung aktivieren.
In diesem Artikel wird erklärt, wie Sie Dateien im serverseitigen Verzeichnis dekomprimieren!
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>Serverseitige Dekomprimierung Qingqing Yue'er http://blog.csdn.net/21aspnet/</title >
</head>
<Körper>
<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;
Verwenden von System.Data;
Verwenden von System.Configuration;
mit System.Web;
mit System.Web.Security;
mit System.Web.UI;
mit System.Web.UI.WebControls;
mit System.Web.UI.WebControls.WebParts;
mit System.Web.UI.HtmlControls;
mit System.IO;
Verwenden von System.Runtime.InteropServices;
mit Microsoft.Win32;
Verwenden von System.Diagnostics;
öffentliche Teilklasse _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)
...{
//Kompression
String the_rar;
RegistryKey the_Reg;
Objekt the_Obj;
String the_Info;
ProcessStartInfo the_StartInfo;
Verarbeiten Sie den_Prozess;
versuchen
...{
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";//Rufen Sie das Anfangsverzeichnis des zu startenden Prozesses ab oder legen Sie es fest.
the_Process = new Process();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
Response.Write("Komprimierung erfolgreich");
}
Catch (Ausnahme ex)
...{
Response.Write(ex.ToString());
}
}
protected void Button2_Click(object sender, EventArgs e)
...{
//dekomprimieren
String the_rar;
RegistryKey the_Reg;
Objekt the_Obj;
String the_Info;
ProcessStartInfo the_StartInfo;
Verarbeiten Sie den_Prozess;
versuchen
...{
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("Dekomprimierung erfolgreich");
}
Catch (Ausnahme ex)
...{
Response.Write(ex.ToString());
}
}
}
http://blog.csdn.net/21aspnet/archive/2007/06/13/1649810.aspx