Alex Rivera | Logout

Defining a working directory for executing a program (C#)

Asked 2011-07-16T18:17:57.983
14

I am currently trying to get an executable to be launched from a specific folder.

The code I have below crashes the application oddly enough:

Process p = new Process();
p.StartInfo.WorkingDirectory = "dump";
p.StartInfo.FileName = s;
p.Start();

I debugged it, and it was saying it can't find the file to start, but the file / folder defintly exists, is my syntax bad?

The code below works, but a working directroy is not defined, so it can't find the executable

Process.Start(@"dump\", s);
Edit
Report

1 Answer

30

The working directory that you set ("dump") is relative to the current working directory. You might want to check the current working directory.

You should be able to set the working directory to the executing assemblies directory with this code...

string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Directory.SetCurrentDirectory(exeDir);

Or, better yet, don't use a relative path, set p.StartInfo.WorkingDirectory to the absolute path.

answered 2011-07-16T18:20:13.273

Your Answer