asp.net上传RAR文件自动解压

using System;
using System.IO;
using System.Diagnostics;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web.Security;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WebLayer
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>

public class WebForm1 : System.Web.UI.Page
{
  
protected System.Web.UI.WebControls.Button Button1;
  
protected System.Web.UI.HtmlControls.HtmlInputFile myfile;

  
private void Page_Load(object sender, System.EventArgs e)
  
{
   
// 在此处放置用户代码以初始化页面
  }


  
Web 窗体设计器生成的代码

  
private void Button1_Click(object sender, System.EventArgs e)
  
{
   
string path = @"C:\"+myfile.PostedFile.FileName.Substring(myfile.PostedFile.FileName.LastIndexOf("\\"));
   myfile.PostedFile.SaveAs(path);
   Response.Write(
"文件上传成功:"+path);
   
//Response.End();
   
// 在此处放置用户代码以初始化页面  
   Process p = new Process();   
   p.StartInfo.UseShellExecute 
= false;   
   p.StartInfo.RedirectStandardInput 
= true;   
   p.StartInfo.RedirectStandardOutput 
= true;   
   p.StartInfo.RedirectStandardError 
= true;   
   p.StartInfo.CreateNoWindow 
= true;  
   p.StartInfo.FileName 
= "cmd.exe";   
   p.Close();   
   
//解压Rar文件  
   string ServerDir=@"C:\Program Files\WinRAR";//rar路径  
   System.Diagnostics.Process Process1=new Process();  
   Process1.StartInfo.FileName
=ServerDir+"\\Rar.exe";  
   Directory.CreateDirectory(path
+".files"); //创建解压文件夹  
   Process1.StartInfo.Arguments=" x -inul -y "+path+" "+path+".files";  
   Process1.Start();
//解压开始  
   while(!Process1.HasExited)           //等待解压的完成  
   {  
   }
  
   
//File.Delete(path);//删除rar文件  
  }

}

}


posted @ 2006-04-15 09:14  半克拉鹅卵石  阅读(414)  评论(0编辑  收藏  举报