Averiguar el path de ejecución de una aplicación con C#

Patxi Echarte, March 1st, 2006

Hoy toca una cosa sencillita pero que suele ser necesaria al programar aplicaciones de escritorio, se trata de averiguar desde qué ruta se está ejecutando la aplicación. Esto habitualmente es una tarea sencilla en cualquier lenguaje, por ejemplo ExtractFilePath(Application.ExeName) en Delphi, App.Path en versiones anteriores de Visual Basic, o System.getProperty("user.dir") en Java, sin embargo en .NET, pese a seguir siendo sencilla, es algo más difícil de recordar de memoria.

string path = System.IO.Path.GetDirectoryName(
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );
Comparte esta información

5 Comentarios para “Averiguar el path de ejecución de una aplicación con C#”

  1. Jose dice:

    Bueno, más sencillo es usar Application.StartupPath.

  2. Patxi dice:

    Pues tienes razón Jose, es mucho más fácil así ;) se nota que hacía mucho que no programaba aplicaciones windows!!! La forma que indico la saqué hace tiempo de un artículo de msdn, mirando como obtener esta ruta con el .NET Compact Framework para unas pruebas que hice.

    En cualquier caso he aprovechado para mirar un poco la referencia de .NET, y por lo que veo respecto al método GetExecutingAssembly indica que devuelve el assembly que se está ejecutando, lo cual no tengo claro si se refiere al de la aplicación inicial, o al assembly que contiene el código desde el que se realiza la llamada, en cuyo caso no nos daría el path de la aplicación sino del assembly, que bien podría ser una dll que forme parte de la aplicación… me inclino por esto segundo, así que lo tendré en cuenta…

  3. Jose dice:

    No necesariamente aplicaciones Windows, en Mono si no recuerdo mal también vale ;) . Donde no vale es en el CF donde si tienes que recurrir al método GetExecutingAssembly. Un saludo

  4. Gracias dice:

    Gracias compadre te estare agradecido

  5. Caro dice:

    Hola, Pues les cuento que efectivamente para el Compact Framework (CF) no funciona el “Application.StartupPath” así que fue de mucha ayuda para mi la forma de obtener el path que se muestra en el artículo.

    Gracias!!!

Deja un comentario