Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to start a process in the same folder as its executable

I'm trying to start an application programatically, but it always runs it in the folder of my application... For example:

If my app is located in C:\MyApp\myapp.exe and the other app is in C:\OtherApp\otherapp.exe, how can I start the other app in the folder in which it resides, rather than in the folder where my app resides?

Here is how I start the other app:

private void StartApp(OtherApp application)
{
    Process process = new Process();
    process.StartInfo.FileName = application.FileName;
    process.StartInfo.Arguments = application.AppName;
    process.Start();
}
like image 471
Kiril Avatar asked Jun 04 '10 09:06

Kiril


3 Answers

I guess you mean ProcessStartInfo.WorkingDirectory Property

like image 108
Giorgi Avatar answered Oct 22 '22 03:10

Giorgi


Use process.StartInfo.WorkingDirectory = pathToTheFolder;.

like image 45
Femaref Avatar answered Oct 22 '22 01:10

Femaref


Just set the WorkDirectory property.

process.StartInfo.WorkingDirectory = Path.GetDirectoryName(application.Filename);
like image 25
djdd87 Avatar answered Oct 22 '22 01:10

djdd87