0

我制作了一个应用程序,该应用程序使用另一家公司的 exe 来生成一些输出文件,这些输出文件基于对传递给公司 exe 的一些输入文件所做的计算……为了使 exe 工作,它将在同一目录中查找这些输入文件作为exe文件的位置。

对于输出文件,我发现从我的程序运行 exe 时输出到的文件夹与在 Windows 资源管理器中运行 exe 时不同。

  • 当 exe 在 Windows 资源管理器中运行时,这些将输出到 exe 所在的同一目录
  • 当我的程序运行时(在 Visual Studio 的调试中),这些输出到调试文件夹

有谁知道如何让我的程序将这些文件输出到同一个目录或为什么会发生这种情况?

除了它是用 Fortran 编写的之外,我对这个 exe 中的代码一无所知。

我正在使用运行 exeProcess.Start(exeName).WaitForExit()

4

4 回答 4

1

您可能正在搜索Directory.SetCurrentDirectoty函数。

在实际执行外部 exe 程序之前调用它。将您希望查看输出文件的文件夹完整路径传递给它,这可能会解决您的问题。

于 2012-12-19T15:51:47.093 回答
1

当你运行一个应用程序时,每次它应该有一个当前文件夹作为上下文,我认为实际上是那个 exe 使用当前文件夹进行输出,并运行你的程序并调试导致当前文件夹差异。您可以尝试使用 Directory.SetCurrentDirectory 设置当前文件夹,看看是否有帮助

于 2012-12-19T15:53:01.550 回答
0

尝试将工作目录显式设置为两个应用程序所在的目录。

于 2012-12-19T15:52:21.253 回答
0

如果您不想为 C# 应用程序设置工作目录,而只想为运行的程序设置工作目录,请使用该Process.StartInfo.WorkingDirectory属性。

例子:

var process = new Process();
var startInfo = new ProcessStartInfo("myProgram.exe");
startInfo.WorkingDirectory = "myDirectory";
process.StartInfo = startInfo;
process.Start();
于 2012-12-19T15:53:57.470 回答