Process.start环境路径

时间:2014-08-28 04:06:45

标签: c# process.start

我有控制台应用程序1,它将文本写入文件,它位于C:/ app1

using (StreamWriter k = new StreamWriter("777.txt"))
    k.WriteLine("aa");

我有另一个控制台应用程序2,c:/ app2,它启动控制台应用程序1

System.Diagnostics.Process.Start("c:/app1/app1.exe");

出于某种原因,当我运行应用程序2时,输出777.txt将在folder2而不是folder1中。当我从Windows资源管理器运行应用程序1时,输出777.txt将位于folder1。

我看起来并尝试添加environment.path但它没有解决问题。

3 个答案:

答案 0 :(得分:1)

您的应用程序1使用的是相对路径,而不是根路径。该路径相对于"当前目录"而不是"路径"环境变量。

进程可以接受ProcessStartInfo实例,该实例包含用于定义当前目录的属性。您希望在启动之前将其设置为应用程序1的位置。

答案 1 :(得分:1)

请尝试以下方法:

        ProcessStartInfo startInfo = new ProcessStartInfo(@"c:\app1\app1.exe");
        startInfo.WorkingDirectory= @"c:\app1";

        Process.Start(startInfo);

答案 2 :(得分:1)

您应该将"777.txt"替换为AppDomain.CurrentDomain.BaseDirectory & "777.txt"