我目前正在尝试从特定文件夹启动可执行文件。
我下面的代码奇怪地崩溃了应用程序:
Process p = new Process();
p.StartInfo.WorkingDirectory = "dump";
p.StartInfo.FileName = s;
p.Start();
我调试了它,它说无法找到要启动的文件,但文件/文件夹defintly存在,我的语法不好?
下面的代码可以使用,但是没有定义工作的directroy,因此无法找到可执行文件
Process.Start(@"dump\", s);
答案 0 :(得分:13)
您设置的工作目录(“转储”)是相对于当前工作目录的。您可能想要检查当前的工作目录。
您应该能够使用此代码将工作目录设置为正在执行的程序集目录...
string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Directory.SetCurrentDirectory(exeDir);
或者,更好的是,不要使用相对路径,将p.StartInfo.WorkingDirectory设置为绝对路径。
答案 1 :(得分:0)
如果文件夹不存在,则无法从文件夹启动。您必须将可执行文件复制到此文件夹,然后才能为此可执行文件启动Process
。