1

可能重复:
.Net Process.Start 默认目录?

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

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

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

但是,如果我打开提示并转到: cd c:\appFolder app.exe

然后它启动就好了。

我在 process.start 上遇到的问题是它尝试打开应用程序而不先执行相当于“cd c:\appFolder”的操作,因此应用程序在打开时出错。

那么如何让 Process.Start 执行相当于首先导航到应用程序文件夹“cd c:\appFolder”然后调用 app.exe 的操作?

顺便说一句,我已经通过放置 cd C:\appFolder app.exe 解决了这个问题

进入 .bat 文件,并让 Process.Start 打开 .bat 文件,它工作得很好。但我很想知道是否有办法删除 .bat 文件。

4

4 回答 4

3

使用cd blah只是更改您的工作目录。WorkingDirectory您可以通过设置ProcessStartInfo. 也许是这样的:

var procInfo = new ProcessStartInfo("app.exe");
procInfo.WorkingDirectory = @"C:\appFolder";
Process.Start(procInfo);
于 2012-01-19T18:50:39.197 回答
1
        var psi = new ProcessStartInfo("app.exe");
        psi.WorkingDirectory = @"C:\appFolder";
        Process.Start(psi);
于 2012-01-19T18:52:31.573 回答
1

尝试在通话前更改工作目录

Directory.SetCurrentDirectory(@"path");

http://msdn.microsoft.com/en-us/library/system.io.directory.setcurrentdirectory.aspx

于 2012-01-19T18:50:07.827 回答
0

使用ProcessStartInfo对象启动应用程序并WorkingDirectory相应地设置属性。

于 2012-01-19T18:50:41.253 回答