Índice de la sección dedicada a .NET (en el Guille) Cómo... en .NET

El nombre y el path del ejecutable sin usar API
(código de ejemplo en VB y C#)

Publicado el 24/Ago/2004
Actualizado el 24/Ago/2004
Autor: Guillermo 'guille' Som


 

Anteriormente puse este mismo "truco" usando el API de Windows, pero realmente no es necesario tener que usar dicho API para conseguir esa información, ya que la clase Application tiene dos propiedades que nos informan del path del ejecutable y del nombre (con la ruta completa) del ejecutable actual.

 

Para saber el path del ejecutable, es decir el directorio desde el que se ejecuta el exe, lo podemos averiguar mediante la propiedad: Application.StartupPath, esto es útil si queremos cargar cualquier fichero que se encuentra en el mismo directorio del ejecutable, por ejemplo un fichero de configuración, etc.

Esta propiedad no incluye la barra del directorio, por tanto si queremos acceder a algún fichero debemos indicarla, por ejemplo:

VB:
Dim sIni As String = Application.StartupPath & "\prueba.cfg"

C#:
string sIni = Application.StartupPath + "\\prueba.cfg";

o también:
string sIni = Application.StartupPath + @"\prueba.cfg";

Por otro lado, para averiguar el nombre del ejecutable (incluido el directorio), podemos usar: Application.ExecutablePath.

VB:
Dim sExe As String = Application.ExecutablePath

C#:
string sExe = Application.ExecutablePath;

En caso de que sólo nos interese el nombre del ejecutable, podemos usar algunos de los métodos de la clase System.IO.Path, como por ejemplo:

VB:
' el nombre del ejecutable y la extensión:
Dim sExe As String = System.IO.Path.GetFileName(Application.ExecutablePath)
'
' el nombre del ejecutable sin la extensión:
Dim sExe As String = System.IO.Path.GetFileNameWithoutExtension(Application.ExecutablePath)
C#:
// el nombre del ejecutable y la extensión:
string sExe = System.IO.Path.GetFileName(Application.ExecutablePath);
//
// el nombre del ejecutable sin la extensión:
string sExe = System.IO.Path.GetFileNameWithoutExtension(Application.ExecutablePath);

...


la Luna del Guille o... el Guille que está en la Luna... tanto monta...