¿Cómo puedo saber en qué directorio se está ejecutando mi aplicación de consola con C#?¿Cómo puedo saber en qué directorio se está ejecutando mi aplicación de consola con C#?
Respuesta
Para obtener el directorio donde el archivo .exe es:
AppDomain.CurrentDomain.BaseDirectory
para obtener el directorio actual:
Environment.CurrentDirectory
En Windows (no estoy seguro acerca de Unix, etc.) es el primer argumento en la línea de comandos.
En C/C++ elemento coquetea en argv *
WinAPI - GetModuleFileName (NULL, char *, MAX_PATH)
Sí, es el mismo en .NET, también. Primero arg es siempre la ruta completa del ejecutable. –
En .NET, puede utilizar System.Environment.CurrentDirectory
para obtener el grave desde el cual se inició el proceso.
System.Reflection.Assembly.GetExecutingAssembly().Location
le indicará la ubicación del ensamblaje que se está ejecutando actualmente (eso solo es interesante si el ensamblaje que se está ejecutando se carga desde un lugar diferente al del ensamblaje donde comenzó el proceso).
Dependiendo de los derechos otorgados a su aplicación, si shadow copying está activo o no y otras opciones de invocación e implementación, diferentes métodos pueden funcionar o producir resultados diferentes, por lo que deberá elegir su arma sabiamente. Una vez dicho esto, todos los siguientes se obtendrán los mismos resultados para una aplicación de consola de plena confianza que se ejecuta 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);
Usted tendrá que consultar la documentación de los miembros anteriores para ver los permisos exactos necesarios.
Application.StartUpPath;
cuidado para vincular a cierta documentación? –
Path.GetDirectoryName (Assembly.GetExecutingAssembly(). Lugar)
- 1. ¿Cómo puedo saber en qué dispositivos/versiones de sistema operativo se está ejecutando mi aplicación iOS?
- 2. ¿Cómo puedo saber bajo qué versión de IIS se está ejecutando mi aplicación Asp.Net?
- 3. ¿Cómo puedo saber si mi aplicación se está ejecutando en una sesión de RDP
- 4. ¿Cómo puedo detectar si mi código se está ejecutando en la consola en Rails 3?
- 5. ¿Qué usuario está ejecutando mi aplicación Rails?
- 6. ¿Cómo puede saber mi programa si Delphi se está ejecutando?
- 7. ¿Cómo puedo saber si mi aplicación se está ejecutando como una aplicación de 32 bits o de 64 bits?
- 8. ¿Cómo puedo saber si mi script de Perl se está ejecutando en Windows?
- 9. ¿Cómo saber en qué cuenta se está ejecutando mi código ASP.NET?
- 10. ¿Cómo puedo saber si un proceso se está ejecutando?
- 11. Comprobando si mi aplicación de Windows se está ejecutando
- 12. ¿Cómo puedo saber si mi kernel OpenCL se está ejecutando en una GPU?
- 13. ¿Cómo saber en qué Mac OS se está ejecutando la aplicación?
- 14. ¿Cómo puedo saber si mi aplicación para iPhone se está ejecutando cuando se recibe una notificación push?
- 15. ¿Cómo puedo saber si mi proceso se está ejecutando como administrador?
- 16. ¿Cómo puedo saber si un proceso ya se está ejecutando usando C#?
- 17. ¿Cómo puedo saber si un proceso se está ejecutando en C?
- 18. Cómo saber si el servidor de emacs se está ejecutando
- 19. ¿Qué iniciador se está ejecutando?
- 20. ¿Cómo inicio una segunda aplicación de consola en Visual Studio cuando ya se está ejecutando
- 21. ¿Cómo puedo determinar por qué mi aplicación ASP.NET está reciclando?
- 22. ¿Cómo determinar si se está ejecutando una instancia previa de mi aplicación?
- 23. ¿Cómo puedo saber a qué apunta mi enlace simbólico?
- 24. ¿Cómo puedo saber si mi aplicación Django se ejecuta en el servidor de desarrollo o no?
- 25. ¿Cómo saber si se está ejecutando un temporizador?
- 26. ¿Cómo puedo encontrar en qué sistema operativo se está ejecutando mi programa Ruby?
- 27. ¿Puedo saber, en node.js, si mi script se está ejecutando directamente o está siendo cargado por otro script?
- 28. ¿Cómo saber si la actualización MATERIALIZED VIEW se está ejecutando?
- 29. ¿Cómo puedo saber si Autovacuum se está ejecutando en Windows Server 2003 para mi base de datos PGSQL?
- 30. ¿Cómo saber qué requisitos de hardware tiene mi aplicación Android?
Gracias. Ayuda cuando el C# .exe está en una carpeta pero se invoca desde otra carpeta (por ejemplo: cuando está en el sistema PATH) – DeepSpace101
Para .NET Core, es 'System.AppContext.BaseDirectory'. – NightOwl888