Directory.GetCurrentDirectory

时间:2012-03-13 07:44:34

标签: c#

我写了一个程序来检查它是否在特定文件夹中; 如果没有,它会将自身复制到该文件夹​​中,运行复制的程序并退出。 但问题是我打电话的时候 Directory.GetCurrentDirectory();  在复制的程序中(仅当它由第一个程序运行时)我得到的第一个程序的目录不是复制的程序。 这有什么问题?

代码:

if(Directory.GetCurrentDirectory()!=dir)
{
      File.Copy(Application.ExecutablePath,dir+name);
      System.Diagnostics.Process.Start(dir+@"\"+name);
      System.Environment.Exit(System.Environment.ExitCode);
}

我总结了我的代码。

1 个答案:

答案 0 :(得分:1)

您必须在processinfo上使用WorkingDirectory,无需复制文件。

if(Directory.GetCurrentDirectory()!=dir)
{
  string exepath = Path.Combine(dir,name);
  ProcessStartInfo processStartInfo = new ProcessStartInfo();
  process.StartInfo.FileName = exepath;
  processStartInfo.WorkingDirectory = dir;

  //Set your other process info properties

  Process process = Process.Start(processStartInfo);
  System.Environment.Exit(System.Environment.ExitCode);
}