代码之家  ›  专栏  ›  技术社区  ›  Crash893

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

  •  44
  • Crash893  · 技术社区  · 16 年前

    我正在编写一个程序来杀死并重新启动资源管理器,但我不想对位置进行硬编码,因为有些人在不同的地方安装了windows(例如,我发现有人在C:\驱动器确实存在但没有安装任何东西的d:\驱动器中安装了windows)

    我试着在环境下看。特殊文件夹。但我没有看到“窗口”选项

    最好的方法是什么?

    4 回复  |  直到 9 年前
        1
  •  72
  •   Omar    16 年前

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

    试试这些:

    Environment.GetEnvironmentVariable("SystemRoot")
    
    Environment.GetEnvironmentVariable("windir")
    
        2
  •  56
  •   Uri London    13 年前

    Environment.GetFolderPath( Environment.SpecialFolder.Windows ) 将返回Windows文件夹的路径。在环境变量中推荐这种方法,因为使用API可以实现我们想要的功能(.NET 4.0及更高版本)。

        3
  •  26
  •   Adam Lindsay    10 年前

    我强烈建议使用:

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

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

        4
  •  10
  •   Dirk Vollmar    16 年前

    要简单地杀死并重新启动Windows资源管理器,您不需要系统文件夹的路径,因为这已经包含在path环境变量中(除非用户弄乱了它)。

    该短程序将杀死所有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");
    }
    
    推荐文章