定义用于执行程序的工作目录(c#)

本文关键字:工作 用于 执行程序 定义 | 更新日期: 2023-09-27 18:02:23

我目前正在尝试从特定文件夹启动可执行文件。

下面的代码很奇怪地使应用程序崩溃:

Process p = new Process();
p.StartInfo.WorkingDirectory = "dump";
p.StartInfo.FileName = s;
p.Start();

我调试了它,它说它找不到要启动的文件,但文件/文件夹绝对存在,是我的语法不好吗?

下面的代码可以工作,但是没有定义工作目录,所以它找不到可执行的

Process.Start(@"dump'", s);

定义用于执行程序的工作目录(c#)

您设置的工作目录("dump")是相对于当前工作目录的。您可能需要检查当前工作目录。

您应该能够使用以下代码将工作目录设置为执行程序集目录…

string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Directory.SetCurrentDirectory(exeDir);

或者,最好不要使用相对路径,将p.s startinfo . workingdirectory设置为绝对路径。

如果文件夹不存在,则无法从该文件夹启动可执行文件。您必须将您的可执行文件复制到此文件夹,只有在此之后您才能为该可执行文件启动Process