Process.Start找不到现有文件

时间:2012-11-12 13:31:37

标签: c# .net file process io

  • 我有可执行文件的路径(C:\Test\n4.TestConsole.exe)。
  • File.Exists(path)返回true
  • File.OpenRead(path)让我流畅无问题。
  • Process.Start(path)会抛出System.ComponentModel.Win32Exception这条消息:

      

    系统找不到指定的文件。

  •   
  我做错了什么?

Windows 8 Professional x64 - .NET Framework 4.5


编辑:以下是代码。

public partial class Form1 : Form
{
    public string Path { get; set; }

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // I put a breakpoint here and verify the Path's value is
        // C:\Test\n4.TestConsole.exe.

        // File.Exists returns true.
        MessageBox.Show(File.Exists(Path));

        // File.OpenRead doesn't throw an exception.
        using (var stream = File.OpenRead(Path)) { }

        // This throws the exception.
        Process.Start(Path);
    }
}

2 个答案:

答案 0 :(得分:2)

这可能是一个缺失的DLL或其他依赖项。您可能希望在通过Process.Start(exe_path)直接运行PATH环境变量时以及通过Process.Start("cmd", "/k " + exe_path)运行它时对其进行比较。

答案 1 :(得分:1)

试试这个:

private void button1_Click(object sender, EventArgs e)
{
    ProcessStartInfo psi = new ProcessStartInfo();
    psi.WorkingDirectory = @"C:\Test";
    psi.FileName = "n4.TestConsole.exe";
    Process.Start(psi);
}