Jika program RAR terinstal di server, maka asp.net dapat memanggil RAR untuk mengompresi dan mendekompresi file.
Namun, perlu dicatat bahwa karena program Web tidak dapat langsung memanggil program klien (kecuali ActiveX digunakan, ActiveX hampir ditinggalkan), jadi jika Anda ingin mengizinkan pengguna untuk mendekompresi file lokal menggunakan halaman web, mereka hanya dapat mengunggah file ke server dan kemudian memanggil server. Kompresi RAR aktif. Dengan cara yang sama, jika Anda ingin mendekompresi file RAR lokal, Anda dapat mengunggah file tersebut ke server untuk mendekompresinya dan kemudian mendapatkannya kembali.
Artikel ini menjelaskan cara mendekompresi file di direktori sisi server!
Kode bagian depan:
<%...@ Halaman Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transisi/ /EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<head runat="server">
<title>Dekompresi sisi server Qingqing Yue'er http://blog.csdn.net/21aspnet/</title >
</kepala>
<tubuh>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Kompresi" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Unzip" /></div>
</bentuk>
</tubuh>
</html>
Kode backend:
menggunakan Sistem;
menggunakan Sistem.Data;
menggunakan Sistem.Konfigurasi;
menggunakan Sistem.Web;
menggunakan Sistem.Web.Keamanan;
menggunakan Sistem.Web.UI;
menggunakan Sistem.Web.UI.WebControls;
menggunakan System.Web.UI.WebControls.WebParts;
menggunakan Sistem.Web.UI.HtmlControls;
menggunakan Sistem.IO;
menggunakan System.Runtime.InteropServices;
menggunakan Microsoft.Win32;
menggunakan Sistem.Diagnostik;
kelas parsial publik _Default : System.Web.UI.Page
...{
dilindungi kekosongan Page_Load (pengirim objek, EventArgs e)
...{
//Qingqingyueerhttp://blog.csdn.net/21aspnet/
}
void yang dilindungi Button1_Click(pengirim objek, EventArgs e)
...{
//kompresi
Rangkai the_rar;
Kunci Registri the_Reg;
Keberatan the_Obj;
Rangkai_Info;
ProcessStartInfo the_StartInfo;
Proses_Proses;
mencoba
...{
the_Reg = Registry.ClassesRoot.OpenSubKey("AplikasiWinRAR.exeShellOpenCommand");
the_Obj = the_Reg.GetValue("");
the_rar = the_Obj.ToString();
the_Reg.Tutup();
the_rar = the_rar.Substring(1, the_rar.Panjang - 7);
the_Info = " a " + " 1.rar " + " " + "C:11.txt";
the_StartInfo = ProsesStartInfo baru();
the_StartInfo.FileName = the_rar;
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = ProcessWindowStyle.Tersembunyi;
the_StartInfo.WorkingDirectory = "C:1";//Dapatkan atau atur direktori awal proses yang akan dimulai.
the_Process = Proses baru();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
Response.Write("Kompresi berhasil");
}
menangkap (Pengecualian ex)
...{
Respon.Write(ex.ToString());
}
}
void yang dilindungi Button2_Click(pengirim objek, EventArgs e)
...{
//dekompresi
Rangkai the_rar;
Kunci Registri the_Reg;
Keberatan the_Obj;
Rangkai_Info;
ProcessStartInfo the_StartInfo;
Proses_Proses;
mencoba
...{
the_Reg = Registry.ClassesRoot.OpenSubKey("AplikasiWinRar.exeShellOpenCommand");
the_Obj = the_Reg.GetValue("");
the_rar = the_Obj.ToString();
the_Reg.Tutup();
the_rar = the_rar.Substring(1, the_rar.Panjang - 7);
the_Info = " X " + " 1.rar " + " " + "C:1";
the_StartInfo = ProsesStartInfo baru();
the_StartInfo.FileName = the_rar;
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = ProcessWindowStyle.Tersembunyi;
the_Process = Proses baru();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
Response.Write("Dekompresi berhasil");
}
menangkap (Pengecualian ex)
...{
Respon.Write(ex.ToString());
}
}
}
http://blog.csdn.net/21aspnet/archive/2007/06/13/1649810.aspx