¿Cómo averiguamos la ruta en la que está un ejecutable?
Hay varias formas para todos los gustos: desde los que van a lo práctico a los que les "mola" complicarse la vida. Veámoslas todas ;-)
- Solución 1 (fácil):
private static string RutaActual(){ return Environment.CurrentDirectory;}
- Solución 2 (fácil):
using System.IO;private static string RutaActual(){ return Directory.CurrentDirectory;}
- Solución 3 (media):
using System.Diagnostics;private static string RutaActual(){ string arch = Process.GetCurrentProcess().MainModule.FileName; return arch.Substring(0, arch.LastIndexOf("\\"));}
- Solución 4 (super-rebuscada: como la hace la plataforma .NET y usando la API):
private static string RutaActual(){ string text2; StringBuilder builder1 = new StringBuilder(0x105); if (Win32Native.GetCurrentDirectory(builder1.Capacity, builder1) == 0) { __Error.WinIOError(); } string text1 = builder1.ToString(); if (text1.EndsWith(@"\")) { text2 = text1 + "."; } else { text2 = text1 + @"\."; } string[] textArray1 = new string[] { text2 } ; new FileIOPermission(FileIOPermissionAccess.PathDiscovery, textArray1, false, false).Demand(); return text1;}
En esta última me niego a poner todas las definiciones (copiado y pegado de .NET Reflector) :-(
Escoja la que más le guste, pero lo cierto es que usar la 1, la 2 o 3 es exactamente lo mismo porque las dos primeras llaman a esta última. Así que en el fondo la más rápida puede que sea la tercera que usa una manera completamente distinta de hacerlo ¿o no? Quien sabe... ;-)
Remember Me
a@href@title, b, i, strike, strong, u