Feri73
Feri73

Reputation: 33

Directory.GetCurrentDirectory

I've written a program that checks if it is in a specific folder; if not, it copies itself into that folder,run the copied program and exit. but the problem is when I call Directory.GetCurrentDirectory(); in the copied program(only when It runs by the first one) I get the directory of the first program not the copied one. What's the problem here?

the code:

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

i summarized my codes.

Upvotes: 0

Views: 1314

Answers (1)

Peter
Peter

Reputation: 27934

You have to use the WorkingDirectory on the processinfo, no need for copying the files.

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);
}

Upvotes: 1

Related Questions