C# process.start()方法未生成文件

C# process.start()方法未生成文件,c#,C#,我有一个.exe文件。我想使用Process.Start()命令运行.exe文件。执行.exe文件时会生成两个文件,一个是.xls文件,另一个是.htm文件。当我通过.net代码运行.exe文件时,应该生成的两个文件没有生成。下面是我的代码: static void Main(string[] args) { Process.Start(@"C:\Test\test.exe"); } 我不确定进程是否正在执行,但我没有看到任何错误。而且,我没有看到生成任何文件。如果手

我有一个.exe文件。我想使用
Process.Start()
命令运行.exe文件。执行.exe文件时会生成两个文件,一个是.xls文件,另一个是.htm文件。当我通过.net代码运行.exe文件时,应该生成的两个文件没有生成。下面是我的代码:

 static void Main(string[] args)
    {
        Process.Start(@"C:\Test\test.exe");
}
我不确定进程是否正在执行,但我没有看到任何错误。而且,我没有看到生成任何文件。如果手动运行该进程,则可以看到在.exe文件所在的同一文件夹中生成的两个文件


任何帮助都将不胜感激。

请尝试等待流程完成:

Process.Start(@"C:\Test\test.exe").WaitForExit();
更好地进行调试:

Process process = Process.Start(@"C:\Test\test.exe");
int id = process.Id;
Process runningProc = Process.GetProcessById(id);
runningProc.WaitForExit();

请尝试等待进程完成:

Process.Start(@"C:\Test\test.exe").WaitForExit();
更好地进行调试:

Process process = Process.Start(@"C:\Test\test.exe");
int id = process.Id;
Process runningProc = Process.GetProcessById(id);
runningProc.WaitForExit();

你能用try-catch来包装这行吗?如果你只是双击Windows资源管理器中的exe,会发生什么?它会生成你的文件吗?如果没有,我不希望调用Process.Start会有任何不同。“我可以看到在.exe文件所在的同一文件夹中生成的两个文件”。Test.exe如何确定在何处创建文件?如果它基于某个当前目录,则它们可能是在您的bin文件夹中创建的,而不是在可执行文件所在的位置。您是否可以用try-catch换行并查看是否发生任何异常?如果您只是在Windows资源管理器中双击该可执行文件,会发生什么情况?它会生成你的文件吗?如果没有,我不希望调用Process.Start会有任何不同。“我可以看到在.exe文件所在的同一文件夹中生成的两个文件”。Test.exe如何确定在何处创建文件?如果它基于某些当前目录,那么它们可能是在您的bin文件夹中创建的,而不是可执行文件所在的位置,为什么不干脆
process.WaitForExit()
process.GetProcessById(id)t将显示异常。这允许您检查进程是否正在实际运行。如果您通过
process.id
拥有id,则表示它在某个点运行。如果程序未运行,您将无法获取id。谢谢。这解决了我的两个问题。我试图在文件生成后将其复制到分解驱动器。WaitforExit解决了这个问题。非常感谢。again@ScottChamberlain如果在这一行中放置断点
intid=process.id或插入
线程。睡眠(x)之后,您可以等待一段特定的时间,检查它是否仍在运行。为什么要执行
Process.GetProcessById(id)的额外步骤
,为什么不干脆
process.WaitForExit()
process.GetProcessById(id)t将显示异常。这允许您检查进程是否正在实际运行。如果您通过
process.id
拥有id,则表示它在某个点运行。如果程序未运行,您将无法获取id。谢谢。这解决了我的两个问题。我试图在文件生成后将其复制到分解驱动器。WaitforExit解决了这个问题。非常感谢。again@ScottChamberlain如果在这一行中放置断点
intid=process.id或插入
线程。睡眠(x)之后,您可以等待一个特定的时间来检查它是否仍在运行。