Averiguar el path de ejecución de una aplicación con C#
March 1st, 2006Hoy 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 );
delicious
menéame
fresqui

March 1st, 2006 a las 2:48 pm
Bueno, más sencillo es usar Application.StartupPath.
March 1st, 2006 a las 9:24 pm
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…
March 2nd, 2006 a las 9:26 pm
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
October 1st, 2007 a las 9:27 am
Gracias compadre te estare agradecido
July 14th, 2008 a las 3:32 am
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!!!