如何在 C# 中从路径运行 .exe
Posted
技术标签:
【中文标题】如何在 C# 中从路径运行 .exe【英文标题】:How to run a .exe in C# from a path 【发布时间】:2014-04-02 03:54:58 【问题描述】:我在从路径执行 .exe 时遇到问题。我已经搜索了谷歌并检查了有关此主题的推荐内容,但是它们不起作用...
我正在尝试从某个路径运行 .exe,但它只是说找不到文件?
我正在尝试这个:
const string ex1 = "C:\\";
const string ex2 = "C:\\Desktop\\3D Survival\\3\\Test\\";
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "3D Survival.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "-f j -o \"" + ex1 + "\" -z 1.0 -s y " + ex2;
try
using (Process exeProcess = Process.Start(startInfo))
exeProcess.WaitForExit();
catch
// Log error.
这也让我找不到文件,我也尝试过 Process.Start("3D Survival.exe");它仍然说找不到文件。是的,文件确实存在。
有人解决了吗?
【问题讨论】:
3D Survival.exe 是否可供正在执行的应用程序访问?它可能存在于其他路径上,Windows 无法将其解析到任何默认位置。 3D Survival.exe 程序是否在启动应用程序的同一文件夹中? 我可以将.exe添加到同一个文件夹,但是我需要从某个目录执行。 【参考方案1】:您的代码假定“3D Survival.exe”存在于当前工作目录中。您需要提供绝对路径,或相对于工作目录的路径。
如果您希望它与您正在执行的程序相关,请使用:
Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), pathToExe);
要获取当前工作目录,只需使用:
Directory.GetCurrentDirectory();
您的工作目录可能与您想象的不同,这将肯定地告诉您..
要做一个绝对路径,只需将整个路径放入Process.Start,或放入StartInfo.FileName
【讨论】:
很高兴您发现我的回答很有帮助。以上是关于如何在 C# 中从路径运行 .exe的主要内容,如果未能解决你的问题,请参考以下文章