如何在Windows窗体中以编程方式获取用户首字母

时间:2012-05-16 09:32:24

标签: c# winforms visual-studio-2010

我能够获得这个文件夹:

C:\Users\XXX\Documents

我的代码:

string myDocuments = 
                Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

我需要获取用户资料(XXX),有没有很好的方法来获取它,例如MyDocuments

如果是这样,我更喜欢干净的方式,而不是从我的文件夹路径中选择用户名。

4 个答案:

答案 0 :(得分:4)

您可以结帐UserName财产:

string username = Environment.UserName;

答案 1 :(得分:2)

使用Environment.UserName获取当前登录Windows操作系统的用户的用户名。

答案 2 :(得分:0)

Office应用程序询问&存储首字母,但不是窗口 因此,与其他帖子一样,使用Environment.UserName

然后,使用此扩展方法检索缩写(每个单词的第一个字母)

/// <summary>
/// Remove any special character and return the first letters of all words
/// </summary>
/// <param name="str">String to retrieve the initials from</param>
/// <returns></returns>
public static string GetInitials(this string str)
{
    if (string.IsNullOrEmpty(str))
        return str;

    var space = ' ';
    var previousWasSpace = true;
    var buffer = new char[str.Length];
    var index = 0;
    foreach (char c in str)
    {
        if (c == space)
        {
            previousWasSpace = true;
        }
        else if (previousWasSpace && char.IsLetterOrDigit(c))
        {
            previousWasSpace = false;
            buffer[index] = c;
            index++;
        }
    }

    return new string(buffer, 0, index);
}

此方法陈旧且可能已优化

答案 3 :(得分:0)

这是另一种从用户名获取首字母的方法(在此示例中按空格或句点分割):

foreach (string s in Environment.UserName.Split(" .".ToCharArray()))
    userInitials += s.Substring(0,1).ToUpper();