C#相当于cd C:\ appFolder c:\ app.exe?

时间:2012-01-19 18:46:55

标签: c# batch-file process.start

  

可能重复:
  .Net Process.Start default directory?

我有一个C#应用程序,mono是具体的。此应用程序需要在用户系统上启动另一个应用程序。我知道Process.Start以及如何使用它,但是这个实例的某些东西很难实现,这使得它无法正常工作。

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

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

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

然后发布就好了。

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

那么我该如何让Process.Start做相当于首先导航到apps文件夹'cd c:\ appFolder'然后调用app.exe?

顺便说一句,我已经解决了这个问题 cd C:\ appFolder APP.EXE

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

4 个答案:

答案 0 :(得分:3)

使用cd blah只会更改您的工作目录。您可以通过设置WorkingDirectory的{​​{1}}来设置流程的工作目录。也许是这样的:

ProcessStartInfo

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

Directory.SetCurrentDirectory(@"path");

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

答案 3 :(得分:0)

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