我有控制台应用程序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但它没有解决问题。
答案 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"