إذا تم تثبيت برنامج RAR على الخادم، فيمكن لـ asp.net استدعاء RAR لضغط الملفات وفك ضغطها.
ومع ذلك، تجدر الإشارة إلى أنه بما أن برامج الويب لا يمكنها استدعاء برامج العميل مباشرة (ما لم يتم استخدام ActiveX، فسيتم التخلي عن ActiveX تقريبًا)، لذلك إذا كنت تريد السماح للمستخدمين بفك ضغط الملفات المحلية باستخدام صفحات الويب، فيمكنهم فقط تحميل الملفات إلى الخادم ثم قم باستدعاء ضغط RAR على الخادم بنفس الطريقة، إذا كنت تريد فك ضغط ملف RAR محلي، فيمكنك تحميل الملف إلى الخادم لفك ضغطه ثم استعادته.
تشرح هذه المقالة كيفية فك ضغط الملفات الموجودة في دليل جانب الخادم!
رمز الواجهة الأمامية:
<%...@ لغة الصفحة = "C#" AutoEventWireup = "true" CodeFile = "Default.aspx.cs" يرث = "_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 " >
<رئيس التشغيل = "الخادم">
<title>إزالة الضغط من جانب الخادم Qingqing Yue'er http://blog.csdn.net/21aspnet/</title >
</الرأس>
<الجسم>
<معرف النموذج = "form1" runat = "الخادم">
<ديف>
<asp:Button ID = "Button1" runat = "server" OnClick = "Button1_Click" Text = "ضغط" />
<asp:Button ID = "Button2" runat = "server" OnClick = "Button2_Click" Text = "Unzip" /></div>
</النموذج>
</الجسم>
</html>
كود الواجهة الخلفية:
استخدام النظام؛
باستخدام System.Data؛
باستخدام System.Configuration؛
باستخدام System.Web؛
باستخدام System.Web.Security؛
باستخدام System.Web.UI؛
باستخدام System.Web.UI.WebControls؛
باستخدام System.Web.UI.WebControls.WebParts؛
باستخدام System.Web.UI.HtmlControls؛
باستخدام System.IO؛
باستخدام System.Runtime.InteropServices؛
باستخدام Microsoft.Win32؛
باستخدام System.Diagnostics؛
الفئة العامة الجزئية _Default: System.Web.UI.Page
...{
Page_Load باطلة محمية (مرسل الكائن، EventArgs e)
...{
//Qingqingyueerhttp://blog.csdn.net/21aspnet/
}
باطلة محمية Button1_Click(مرسل الكائن، EventArgs e)
...{
//ضغط
سلسلة the_rar؛
مفتاح التسجيل the_Reg;
كائن the_Obj؛
سلسلة the_Info؛
ProcessStartInfo the_StartInfo;
معالجة العملية؛
يحاول
...{
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";// احصل على الدليل الأولي للعملية المراد بدءها أو قم بتعيينه.
the_Process = new Process();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
Response.Write("تم الضغط بنجاح");
}
قبض (استثناء على سبيل المثال)
...{
Response.Write(ex.ToString());
}
}
باطلة محمية Button2_Click (مرسل الكائن، EventArgs e)
...{
//فك الضغط
سلسلة the_rar؛
مفتاح التسجيل the_Reg;
كائن the_Obj؛
سلسلة the_Info؛
ProcessStartInfo the_StartInfo;
معالجة العملية؛
يحاول
...{
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("تم إلغاء الضغط بنجاح");
}
قبض (استثناء على سبيل المثال)
...{
Response.Write(ex.ToString());
}
}
}
http://blog.csdn.net/21aspnet/archive/2007/06/13/1649810.aspx