日期:2014-05-17  浏览次数:20432 次

用FileUpload上传压缩文件,在后台解压
我在桌面建了一个文件夹“解压” ,专门存放上传得压缩文件和解压后的文件,代码如下,程序执行完之后,存放解压后的文件的文件夹是空的,怎么会事?有人知道吗?
 try
  {
   
  string path = @"C:\Documents and Settings\桌面\解压" + 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+"\\WinRar.exe"; //不明白这儿是WinRar.exe还是Rar.exe?
  Process1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
  Directory.CreateDirectory(path + ".files"); //创建解压文件夹  
  Process1.StartInfo.Arguments=@" x -inul -y-o"+path+" "+path+".files";
  Process1.Start();//解压开始 
  while(!Process1.HasExited) //等待解压的完成 
  {
  // Process1.WaitForExit();
  }
  }
  catch (Exception ex)
  { 
  this.lblError.Text = ex.Message+ex.StackTrace; 
  }
 

------解决方案--------------------
Process1.StartInfo.Arguments=@" x -inul -y-o"+path+" "+path+".files"; 

======>

Process1.StartInfo.Arguments="x -t -o+ -p- "+" "+path+" "+path+".files";//调用Rar.exe命令行参数

试试~~
不然就是你路径问题~~
------解决方案--------------------
路径里有汉字,换一个路径试一试!