Search code examples
c#.netfilepath

How to get execution directory of console application


I tried to get the directory of the console application using the below code,

Assembly.GetExecutingAssembly().Location

but this one gives me where the assemble resides. This may be different from where I executed the application.

My console application parses logs with no parameters. It must go to the logs/ folder inside of the executable's folder or if I give it a path to logs/ it parses it.


Solution

  • Use Environment.CurrentDirectory.

    Gets or sets the fully qualified path of the current working directory.
    (MSDN Environment.CurrentDirectory Property)

    string logsDirectory = Path.Combine(Environment.CurrentDirectory, "logs");
    

    If your application is running in c:\Foo\Bar logsDirectory will point to c:\Foo\Bar\logs.