C#: Obtener directorio de ejecución

A veces cuando programamos en C# necesitamos saber desde qué directorio se está ejecutando nuestra aplicación.

Por ejemplo, el caso de que queremos ejecutar algún archivo que se encuentre en el mismo directorio que nuestra aplicación.

Para estos ejemplos nos basamos en una solución llamada «Startup Path» que se ejecutara «E:\Ejemplos\Startup Path\Startup Path\bin\Debug\net6.0».

AppDomain.CurrentDomain.BaseDirectory

La mejor opción, ya que nos devuelve directamente el directorio desde donde se está ejecutando la aplicación.

La salida en mi caso seria: E:\Ejemplos\Startup Path\Startup Path\bin\Debug\net6.0\

A continuación comentaré otras formas de saber el directorio de la aplicación, sin embargo, solo las usaría en caso de que me fallase esta opción por algún motivo.

System.Reflection.Assembly.GetExecutingAssembly().Location

Nos devuelve el directorio de la DLL que ejecuta la aplicación.

En mi caso, la salida sería: E:\Ejemplos\Startup Path\Startup Path\bin\Debug\net6.0\Startup Path.dll.

Si combinamos esta opción con el System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) nos daría exactamente el mismo resultado que el anterior.

System.Reflection.Assembly.GetExecutingAssembly().CodeBase

SImilar a la anterior pero en este caso nos incluye file:/// al principio.

La salida sería la siguiente: file:///E:/Ejemplos/Startup Path/Startup Path/bin/Debug/net6.0/Startup Path.dll

Deja un comentario