nombre - obtener ruta de carpeta c#
Encuentra la carpeta de Windows mediante programaciĆ³n en c# (4)
Estoy escribiendo un programa para matar y reiniciar el explorador pero no quiero codificar la ubicación porque algunas personas instalan ventanas en diferentes lugares (por ejemplo, encontré a alguien que lo tenía instalado en la unidad d: / donde el C: / unidad existió pero no tenía nada instalado en él)
Intenté buscar en Environment.SpecialFolder. pero no veo una opción de "Windows" debajo de eso
¿Cuál es la mejor manera de hacer esto?
Para simplemente matar y reiniciar el Explorador de Windows, no necesitaría la ruta de acceso a la carpeta del sistema ya que esto ya está incluido en la variable de entorno PATH (a menos que el usuario se haya equivocado).
Ese programa corto matará todas las instancias de explorer.exe y luego reiniciará explorer.exe:
static void Main(string[] args)
{
foreach (Process process in Process.GetProcessesByName("explorer"))
{
if (!process.HasExited)
{
process.Kill();
}
}
Process.Start("explorer.exe");
}
http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx
Prueba estos:
Environment.GetEnvironmentVariable("SystemRoot")
Environment.GetEnvironmentVariable("windir")
Environment.GetFolderPath( Environment.SpecialFolder.Windows )
devolverá la ruta a la carpeta de Windows. Recomiende este enfoque sobre la variable de entorno, porque usa una API que hace exactamente lo que queremos (.NET 4.0 y superior).
Recomiendo mucho el uso de:
Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System))
NO requiere derechos de administrador y admite todas las versiones de .NET Framework.