以编程方式在c#中查找Windows文件夹

我正在写一个程序来杀死和重新启动浏览器,但我不想硬编码的位置,因为有些人在不同的地方安装Windows(例如,我发现有人安装在D:\驱动器的C:\驱动器确实存在,但没有安装任何东西)

我试过在Environment.SpecialFolder下查找。 但我没有看到一个“Windows”选项

做这个的最好方式是什么?

http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx

试试这些:

Environment.GetEnvironmentVariable("SystemRoot") Environment.GetEnvironmentVariable("windir") 

Environment.GetFolderPath( Environment.SpecialFolder.Windows )将返回到Windows文件夹的path。 在环境variables上推荐这个方法,因为使用了一个完全符合我们需要的API(.NET 4.0及以上版本)。

我强烈build议使用:

 Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System)) 

它不需要pipe理员权限,并支持所有版本的.NET框架。

要简单地杀死并重新启动Windows资源pipe理器,您将不需要系统文件夹的path,因为它已包含在PATH环境variables中(除非用户与之混淆)。

这个简短的程序将杀死所有的explorer.exe实例,然后重新启动explorer.exe:

 static void Main(string[] args) { foreach (Process process in Process.GetProcessesByName("explorer")) { if (!process.HasExited) { process.Kill(); } } Process.Start("explorer.exe"); }