Obtener ruta ejecutable en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Obtenga una ruta ejecutable con la clase Assembly en C#
  2. Obtenga una ruta ejecutable con la clase AppDomain en C#
  3. Obtenga una ruta ejecutable con la clase Path en C#
Obtener ruta ejecutable en C#

Este tutorial presentará los métodos para obtener la ruta ejecutable de nuestro código en C#.

Obtenga una ruta ejecutable con la clase Assembly en C#

La clase Assembly representa un ensamblado que es un bloque de construcción reutilizable de una aplicación CLR de Common Language Runtime en C#. La función Assembly.GetEntryAssembly() se utiliza para obtener el ensamblado del código que se está ejecutando actualmente. Podemos obtener la ruta del código que se está ejecutando actualmente con la propiedad Assembly.GetEntryAssembly().Location que devuelve la ruta ejecutable de la corriente en una variable de cadena. Vea el siguiente ejemplo de código.

using System;
using System.IO;
using System.Reflection;
namespace executable_path {
  class Program {
    static void Main(string[] args) {
      string execPath = Assembly.GetEntryAssembly().Location;
      Console.WriteLine(execPath);
    }
  }
}

Producción :

C:\Debug\destroy object.exe

En el código anterior, mostramos la ruta ejecutable de nuestro código actual con la clase Assembly en C#. Almacenamos el valor devuelto por la propiedad Assembly.GetEntryAssembly().Location dentro de la variable de cadena execPath y se lo mostramos al usuario.

Obtenga una ruta ejecutable con la clase AppDomain en C#

El método anterior nos da la ruta junto con el nombre del archivo ejecutable. Si queremos obtener el nombre del directorio sin el nombre del archivo ejecutable, podemos usar la clase AppDomain en C#. La clase AppDomain representa un dominio de aplicación. Un dominio de aplicación es un entorno aislado donde se ejecutan las aplicaciones. La propiedad AppDomain.CurrentDomain obtiene el dominio de aplicación de la aplicación actual. Podemos obtener la ruta ejecutable con la propiedad AppDomain.CurrentDomain.BaseDirectory, que devuelve la ruta del directorio que contiene el archivo ejecutable del archivo de código actual en una variable de cadena. El siguiente ejemplo de código nos muestra cómo podemos obtener la ruta ejecutable de nuestro código actual con la clase AppDomain en C#.

using System;
using System.IO;
using System.Reflection;
namespace executable_path {
  class Program {
    static void Main(string[] args) {
      string execPath = AppDomain.CurrentDomain.BaseDirectory;
      Console.WriteLine(execPath);
    }
  }
}

Producción :

C:\Debug\

En el código anterior, mostramos la ruta ejecutable de nuestro código actual con la clase AppDomain en C#. Almacenamos el valor devuelto por la propiedad AppDomain.CurrentDomain.BaseDirectory dentro de la variable de cadena execPath y se lo mostramos al usuario. Se recomienda este enfoque porque es el más fácil y requiere menos código que los otros dos enfoques.

Obtenga una ruta ejecutable con la clase Path en C#

La clase Path realiza varias operaciones en cadenas que contienen rutas de archivo en C#. La función Path.GetDirectoryName() puede obtener información del directorio especificado por la ruta. Podemos usar la propiedad System.Reflection.Assembly.GetExecutingAssembly().CodeBase como argumento de la función Path.GetDirectoryName() para obtener el nombre del directorio que contiene el código actual. Vea el siguiente ejemplo de código.

using System;
using System.IO;
using System.Reflection;
namespace executable_path {
  class Program {
    static void Main(string[] args) {
      string execPath =
          Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
      Console.WriteLine(execPath);
    }
  }
}

Producción :

file:\C:\Users\Maisam\source\repos\executable path\executable path\bin\Debug

En el código anterior, mostramos la ruta ejecutable de nuestro código actual con la clase Path en C#. Almacenamos el valor devuelto por la función Path.GetDirectoryName() dentro de la variable de cadena execPath y se lo mostramos al usuario. Este enfoque devuelve la ruta con la cadena file:\ al comienzo de la ruta. Este enfoque no se recomienda porque requiere más código que los dos enfoques anteriores.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Csharp Path