如何在与其可执行文件相同的文件夹中启动进程

10

我正在尝试通过编程的方式启动一个应用程序,但它总是在我的应用程序文件夹中运行... 例如:

如果我的应用程序位于C:\MyApp\myapp.exe,而另一个应用程序位于C:\OtherApp\otherapp.exe,我如何启动其他应用程序在其所在的文件夹中运行,而不是在我的应用程序所在文件夹中运行?

这是我启动另一个应用程序的方法:

private void StartApp(OtherApp application)
{
    Process process = new Process();
    process.StartInfo.FileName = application.FileName;
    process.StartInfo.Arguments = application.AppName;
    process.Start();
}

2
-1 因为浏览 IntelliSense 方法列表比在 SO 上发布更快、更高效(开玩笑的,不要扣分)。 - vaitrafra
@vaitrafra,我对SO上瘾了!!! - Kiril
@vaitrafra,请记住,在SO中,即使解决方案很明显,也不意味着就不应该提出问题…任何在谷歌上搜索这个信息的人都将不可避免地碰到一个SO答案。回答简单问题只会带来好的因果报应。 - Kiril
@vaitrafra, 我知道 :) ...这就是为什么我的第一个评论是“我对SO上瘾了!”但你说得对:这应该是显而易见的。 - Kiril
3个回答

13

这正是我需要的...我一直在寻找一个Directory属性,但我应该寻找一个WorkingDirectory属性!谢谢 :)。 - Kiril

7
使用process.StartInfo.WorkingDirectory = pathToTheFolder;

6

只需设置WorkDirectory属性即可。

process.StartInfo.WorkingDirectory = Path.GetDirectoryName(application.Filename);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接