输出路径怎么会有区别?

时间:2012-12-19 15:48:45

标签: c# exe file-handling

我已经创建了一个应用程序,它使用另一个公司的exe来生成一些输出文件,这些文件基于对传入公司exe的一些输入文件所做的计算...对于exe工作,它将查找这些输入文件与exe文件的位置相同的目录。

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

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

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

除了用Fortran编写的内容之外,我对此exe中的代码一无所知。

我使用Process.Start(exeName).WaitForExit()

运行exe

4 个答案:

答案 0 :(得分:1)

您可能正在搜索Directory.SetCurrentDirectoty功能。

在实际执行外部exe程序之前将其命名为。传入一个文件夹完整路径,您希望在其中查看输出文件,此可能解决您的问题。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

尝试将working directory明确设置为两个应用所在的目录。

答案 3 :(得分:0)

如果您不想为C#应用程序设置工作目录,但仅针对已运行程序,请使用Process.StartInfo.WorkingDirectory属性。

示例:

var process = new Process();
var startInfo = new ProcessStartInfo("myProgram.exe");
startInfo.WorkingDirectory = "myDirectory";
process.StartInfo = startInfo;
process.Start();