How do you get the Default Users folder (e.g. c:\users\Default)

后端 未结 3 1971
鱼传尺愫
鱼传尺愫 2021-01-12 10:11

I\'ve looked at the Environment.GetFolderPath method and the System.Environment.SpecialFolder enum but I couldn\'t see anything that returns the path of the Default Users fo

3条回答
  •  温柔的废话
    2021-01-12 10:57

    There are lots of articles on the web that describe how to change the Default User Profile path:

    http://support.microsoft.com/kb/214636

    http://www.nextofwindows.com/how-to-change-user-profile-default-location-in-windows-7/

    They all say the current Default Profile Path is stored in the following registry location:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
    

    e.g. %SystemDrive%\Users\Default

    And I found this page to get the System Drive: How to get current windows directory e.g. C:\ in C#

    Path.GetPathRoot(Environment.SystemDirectory)
    

    So I'm going to use that. Thanks for your help.

    UPDATE

    I've just tried the following code and it returns C:\Users\Default. So there is no need to replace the %SystemDrive% text stored in the registry key. It replaces it automatically.

    using (RegistryKey profileListKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"))
    {
        string defaultPath = profileListKey.GetValue("Default").ToString();
    }
    

提交回复
热议问题