我能够得到这个文件夹:
C:\Users\XXX\Documents
从我的代码中:
string myDocuments = 
                Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
我需要获取用户(XXX)名,有没有很好的获取方式,比如MyDocuments?
如果是这样,我更喜欢这种干净的方式,而不是从我的文件夹路径中选择用户名。
我能够得到这个文件夹:
C:\Users\XXX\Documents
从我的代码中:
string myDocuments = 
                Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
我需要获取用户(XXX)名,有没有很好的获取方式,比如MyDocuments?
如果是这样,我更喜欢这种干净的方式,而不是从我的文件夹路径中选择用户名。
您可以签出UserName属性:
string username = Environment.UserName;
    用于Environment.UserName获取当前登录到 Windows 操作系统的人员的用户名。
Office 应用程序询问和存储首字母缩写,但不是 Windows 因此,与其他帖子一样,使用 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);
}
此方法较旧,可能会进行优化
这是从用户名获取首字母的另一种方法(在此示例中按空格或句点分隔):
foreach (string s in Environment.UserName.Split(" .".ToCharArray()))
    userInitials += s.Substring(0,1).ToUpper();