【问题标题】:Process.start environment pathProcess.start 环境路径
【发布时间】:2014-08-28 04:06:44
【问题描述】:

我有控制台应用程序 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 将位于文件夹 2 而不是文件夹 1。当我从 Windows 资源管理器运行应用程序 1 时,输出 777.txt 将在文件夹 1 中。

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

【问题讨论】:

    标签: c# process.start


    【解决方案1】:

    请尝试以下方法:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        你应该用AppDomain.CurrentDomain.BaseDirectory & "777.txt"替换你的"777.txt"

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-25
          • 1970-01-01
          • 2012-09-05
          • 2014-04-15
          • 2017-01-23
          • 2017-01-15
          • 2011-01-10
          • 2019-04-27
          相关资源
          最近更新 更多