Possible Duplicate:
.Net Process.Start default directory?




我有一个C#应用程序,具体来说是mono。该应用程序需要在用户系统上启动另一个应用程序。我知道Process.Start以及如何使用它,但是此实例有一些特殊之处,使它无法正常工作。

由于某种原因,我试图通过Process.Start启动的程序需要从其驻留的目录中调用,否则它将在打开时给出错误。

我的意思是,如果我打开命令提示符并键入:
C:\ appFolder \ app.exe
该应用程序将给我一个错误。

但是,如果我打开提示并转到:
cd c:\ appFolder
应用程序

然后启动就可以了。

我在使用process.start时遇到的问题是,它尝试先不执行“ cd c:\ appFolder”的等效操作就打开应用程序,因此应用程序在打开时给出了错误。

那么,如何使Process.Start做相当于首先导航到apps文件夹'cd c:\ appFolder'然后调用app.exe的等效操作?

顺便说一句,我已经解决了这个问题
cd C:\ appFolder
应用程序

放入.bat文件,然后让Process.Start打开.bat文件,效果很好。但是我很想知道是否有一种方法可以剪切.bat文件。

最佳答案

使用cd blah只是更改您的工作目录。您可以通过设置WorkingDirectoryProcessStartInfo来设置进程的工作目录。也许是这样的:

var procInfo = new ProcessStartInfo("app.exe");
procInfo.WorkingDirectory = @"C:\appFolder";
Process.Start(procInfo);

关于c# - C#是否等效于cd C:\appFolder c:\app.exe? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8931557/

10-13 07:31