我目前正试图从一个特定的文件夹中启动一个可执行文件。
我有下面的代码足够奇怪地崩溃应用程序:
Process p = new Process(); p.StartInfo.WorkingDirectory = "dump"; p.StartInfo.FileName = s; p.Start();
我debugging它,它是说它无法find文件启动,但文件/文件夹defintly存在,是我的语法不好?
下面的代码工作,但工作directroy没有定义,所以它找不到可执行文件
Process.Start(@"dump\", s);
您设置的工作目录(“转储”)是相对于当前的工作目录。 您可能需要检查当前的工作目录。
你应该能够使用这个代码将工作目录设置为正在执行的程序集目录…
string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); Directory.SetCurrentDirectory(exeDir);
或者,更好的是,不要使用相对路径,将p.StartInfo.WorkingDirectory设置为绝对路径。
如果不在那里,你不能从一个文件夹启动一个可执行文件。 您必须将您的可执行文件复制到此文件夹,并且只有在此之后,才能启动此可执行文件的Process
。