程序代码如下:
public void RARsave(string rarpath, string filespath)
        {
            Process pro = new System.Diagnostics.Process();
            pro.StartInfo.FileName = @"C:\Program Files\WinRAR\WinRAR.exe";
                pro.StartInfo.Arguments = @"a -ep " + rarpath + " " + filespath;
                ProcessStartInfo Info = new ProcessStartInfo();
                Info.WorkingDirectory = prjpath;
                
                pro.Start();
                pro.WaitForExit();
                pro.Close();
           }出现问题:一旦运行到pro.WaitForExit();程序就停滞不前了,查看winrar.exe进程启了,但是rar文件却没有生成,请教各位是什么原因造成的?(在win2003和win2008上运行都是这样)

解决方案 »

  1.   

    pro.StartInfo.FileName = @"C:\Program Files\WinRAR\RAR.exe"; 
    http://blog.csdn.net/jiangdf/archive/2009/04/19/4091436.aspx  
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  2.   

    用这个"pro.StartInfo.FileName = @"C:\Program Files\WinRAR\RAR.exe"; "也不行,压缩包没有生成,看了http://blog.csdn.net/jiangdf/archive/2009/04/19/4091436.aspx,但是我参数没有写错啊,希望能进一步赐教,谢谢!
      

  3.   

    pro.StartInfo.WorkingDirectory=@"C:\";
      

  4.   

     pro.StartInfo.FileName = @"C:\Program Files\WinRAR\WinRAR.exe"; 
    这句是对的。
      

  5.   

    呵呵,找到原因了,在调用的路径中含有空格,所以需要用双引号引起来,如调用该方法时需要这样写:RARsave("\""+prjpath + SLOUTname + ".rar"+"\"", "\""+prjpath + "SL.OUt"+"\""+" "+"\""+prjpath +"TXQX.txt"+"\"");
    当时不知道,所以绕了好大一个圈啊!谢谢各位的帮忙!