设置进程时,似乎我没有以适当的方式使用该变量WorkingDirectory。我得到了错误(有一个陷阱)
但是在应力文件夹中,我确实有Test.exe。
代码如下(请注意,为了更好地理解,我用直接字符串内容替换了变量)。
Process proc = new System.Diagnostics.Process();
proc.StartInfo.WorkingDirectory = Directory.GetCurrentDirectory() + "\\" + "Stress");
proc.StartInfo.FileName = "Test.exe";
proc.StartInfo.Arguments = "/d=1";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.Start ();
proc.WaitForExit();
return proc.ExitCode;
我知道WorkingDirectory受UseShellExecute影响,但是我尊重这一点。
最佳答案
设置后尝试添加Directory.Exists( proc.StartInfo.WorkingDirectory )
。该目录中是否存在Test.exe
?
也可以尝试:
string filename = Path.Combine( Directory.GetCurrentDirectory(), "Stress", "test.exe" );
check File.Exists( filename );
也许使用
filename
作为proc.StartInfo.FileName
对于您的工作目录,请使用:
Path.Combine( Directory.GetCurrentDirectory(), "Stress" )
为了澄清,我会说使用:
proc.StartInfo.WorkingDirectory = Path.Combine( Directory.GetCurrentDirectory(), "Stress");
proc.StartInfo.FileName = Path.Combine( Directory.GetCurrentDirectory(), "Stress", "Test.exe" );
bool folderExists = Directory.Exists( proc.StartInfo.WorkingDirectory );
bool fileExists = File.Exists( proc.StartInfo.FileName );
您可以调试以查看文件和文件夹是否存在。
关于c# - 如何在C#中正确设置进程WorkingDirectory,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30483513/