Suchen Sie den Windows -Ordner programmatisch in C#
-
19-09-2019 - |
Frage
Ich schreibe ein Programm zum Töten und Neustarten von Explorer, aber ich möchte den Ort nicht codieren, da einige Leute Windows an verschiedenen Stellen installieren Drive gab es, hatte aber nichts installiert)
Ich habe versucht, unter Umwelt zu schauen. SpecialFolder. Aber ich sehe keine "Windows" -Option darunter
Was ist der beste Weg, dies zu tun?
Lösung
http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx
Probiere diese:
Environment.GetEnvironmentVariable("SystemRoot")
Environment.GetEnvironmentVariable("windir")
Andere Tipps
Environment.GetFolderPath( Environment.SpecialFolder.Windows )
Gibt den Pfad zum Windows -Ordner zurück. Empfehlen Sie diesen Ansatz über die Umgebungsvariable, da die Verwendung einer API, die genau das tut, was wir wollen (.NET 4.0 und höher).
Ich würde die Verwendung von:
Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System))
Es erfordert keine Administratorrechte und unterstützt alle Versionen des .NET -Frameworks.
Um Windows Explorer einfach zu töten und neu zu starten, benötigen Sie den Pfad zum Systemordner nicht, da dies bereits in der Pfadumgebungsvariable enthalten ist (es sei denn, der Benutzer, der sich darum machte).
Dieses kurze Programm tötet alle explorer.exe -Instanzen und startete dann explorer.exe:
static void Main(string[] args)
{
foreach (Process process in Process.GetProcessesByName("explorer"))
{
if (!process.HasExited)
{
process.Kill();
}
}
Process.Start("explorer.exe");
}