【问题标题】:How to run a .exe in C# from a path如何在 C# 中从路径运行 .exe
【发布时间】: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添加到同一个文件夹,但是我需要从某个目录执行。

标签: c# process directory exe


【解决方案1】:

您的代码假定“3D Survival.exe”存在于当前工作目录中。您需要提供绝对路径,或相对于工作目录的路径。

如果您希望它与您正在执行的程序相关,请使用:

Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), pathToExe);

要获取当前工作目录,只需使用:

Directory.GetCurrentDirectory();

您的工作目录可能与您想象的不同,这将肯定地告诉您..

要做一个绝对路径,只需将整个路径放入Process.Start,或放入StartInfo.FileName

【讨论】:

  • 很高兴您发现我的回答很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
相关资源
最近更新 更多