c# - terminar - mi programa se cierra sin que pueda ver el resultado c++
¿Cómo puedo averiguar en qué directorio se está ejecutando mi aplicación de consola con C#? (6)
¿Cómo puedo averiguar en qué directorio se está ejecutando mi aplicación de consola con C #?
Application.StartUpPath;
Dependiendo de los derechos otorgados a su aplicación, si la copia oculta está en efecto o no y otras opciones de invocación e implementación, diferentes métodos pueden funcionar o producir resultados diferentes, por lo que tendrá que elegir su arma sabiamente. Una vez dicho esto, todo lo siguiente arrojará el mismo resultado para una aplicación de consola totalmente confiable que se ejecute localmente en la máquina donde reside:
Console.WriteLine( Assembly.GetEntryAssembly().Location );
Console.WriteLine( new Uri(Assembly.GetEntryAssembly().CodeBase).LocalPath );
Console.WriteLine( Assembly.GetEntryAssembly().Location );
Console.WriteLine( Environment.GetCommandLineArgs()[0] );
Console.WriteLine( Process.GetCurrentProcess().MainModule.FileName );
Deberá consultar la documentación de los miembros anteriores para ver los permisos exactos necesarios.
En .NET, puede usar System.Environment.CurrentDirectory
para obtener el directorio desde el que se inició el proceso.
System.Reflection.Assembly.GetExecutingAssembly().Location
te dirá la ubicación del ensamblado que se está ejecutando actualmente (eso solo es interesante si el ensamblaje que se está ejecutando se carga desde un lugar diferente al del ensamblado donde comenzó el proceso).
En Windows (no estoy seguro acerca de Unix, etc.) es el primer argumento en la línea de comandos.
En C / C ++, primer elemento en argv *
WinAPI - GetModuleFileName (NULL, char *, MAX_PATH)
Para obtener el directorio donde está el archivo .exe:
AppDomain.CurrentDomain.BaseDirectory
Para obtener el directorio actual:
Environment.CurrentDirectory
Path.GetDirectoryName (Assembly.GetExecutingAssembly (). Location)