已经系统用户名,取得该用户所对应的C:\Users\ABC\AppData\Roaming路径

时间:2021-12-17 20:56:04
请问,我已经windows用户名,想取得windows用户名所对应的C:\Users\ABC\AppData\Roaming这个路径。
例如:windows用户现在为ABC,所对应的路径是C:\Users\ABC\AppData\Roaming。
如果windows用户ABC改名为AB,所对应的路径也是C:\Users\ABC\AppData\Roaming。
应该怎么做哪?请指教。谢谢。

12 个解决方案

#1


 呼唤大侠, 呼唤大侠, 呼唤大侠,

#2


我已经windows用户名
->
能说中文么,这是中文语法么.

你现在是已经获取到用户名,还是什么意思
已经获取到用户名,不就是把字符串拼接一下就完了
string path=@"C:\Users\"+用户名+@"\AppData\Roaming";

#3


1:我想取得系统全部用户
2:取得全部用户所对应的AppData路径。例如:@"C:\Users\"+用户名+@"\AppData\Roaming";
3:如果系统用户改名,比如说ABC用户,对应的路径是 @"C:\Users\"+ABC+@"\AppData\Roaming";
如果ABC用户改名为AB的话,对应的路径还是@"C:\Users\"+ABC+@"\AppData\Roaming"这个情况发生的场合,
现在已经用户名AB,如何取得@"C:\Users\"+ABC+@"\AppData\Roaming"这个路径哪?

#4


Environment.GetFolderPath 

#5


引用 4 楼 Saleayas 的回复:
Environment.GetFolderPath 

这个只能取得当前登录用户的信息,其他用户的怎么取得那?

#6


引用 5 楼 zxcmvpyj 的回复:
Quote: 引用 4 楼 Saleayas 的回复:

Environment.GetFolderPath 

这个只能取得当前登录用户的信息,其他用户的怎么取得那?

查windows注册表即可。

#7


引用 6 楼 yuwenge 的回复:
Quote: 引用 5 楼 zxcmvpyj 的回复:

Quote: 引用 4 楼 Saleayas 的回复:

Environment.GetFolderPath 

这个只能取得当前登录用户的信息,其他用户的怎么取得那?

查windows注册表即可。

怎么可以把注册表中的[HKey_Users]变成让人读懂的信息哪?如:S-1-5-18 是哪个用户怎么能知道那?

#8


大侠在那里阿,大家讨论一下好吗?

#9


1:我想取得系统全部用户
2:取得全部用户所对应的AppData路径。例如:@"C:\Users\"+用户名+@"\AppData\Roaming";
3:如果系统用户改名,比如说ABC用户,对应的路径是 @"C:\Users\"+ABC+@"\AppData\Roaming";
如果ABC用户改名为AB的话,对应的路径还是@"C:\Users\"+ABC+@"\AppData\Roaming"这个情况发生的场合,
现在已经用户名AB,如何取得@"C:\Users\"+ABC+@"\AppData\Roaming"这个路径哪?

大侠帮帮忙阿

#10


取得用户名可以用
            System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(
                @"\\" + System.Environment.MachineName + @"\root\cimv2",
                "Select * from Win32_Account Where LocalAccount = True AND SIDType = 1");

            foreach (System.Management.ManagementObject obj in searcher.Get())
            {
                System.Console.WriteLine(obj.Properties["Name"].Value);
            }

#11


这样来做吧

        static void Main(string[] args)
        {
            System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(
                 @"\\" + System.Environment.MachineName + @"\root\cimv2",
                 "SELECT * FROM Win32_Account WHERE LocalAccount = True AND SIDType = 1");

            foreach (System.Management.ManagementObject obj in searcher.Get())
            {
                RegistryKey key = Registry.LocalMachine.OpenSubKey(string.Format(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\{0}", obj.Properties["SID"].Value));

                if (key != null)
                    System.Console.WriteLine(string.Format("{0}\t\t{1}", obj.Properties["Name"].Value, key.GetValue("ProfileImagePath")));
            }

            System.Console.ReadKey();
        }

#12


::SHGetSpecialFolderPathA(NULL, path, CSIDL_APPDATA, FALSE);   

一句话即可  path是一个CString类型的空串

#1


 呼唤大侠, 呼唤大侠, 呼唤大侠,

#2


我已经windows用户名
->
能说中文么,这是中文语法么.

你现在是已经获取到用户名,还是什么意思
已经获取到用户名,不就是把字符串拼接一下就完了
string path=@"C:\Users\"+用户名+@"\AppData\Roaming";

#3


1:我想取得系统全部用户
2:取得全部用户所对应的AppData路径。例如:@"C:\Users\"+用户名+@"\AppData\Roaming";
3:如果系统用户改名,比如说ABC用户,对应的路径是 @"C:\Users\"+ABC+@"\AppData\Roaming";
如果ABC用户改名为AB的话,对应的路径还是@"C:\Users\"+ABC+@"\AppData\Roaming"这个情况发生的场合,
现在已经用户名AB,如何取得@"C:\Users\"+ABC+@"\AppData\Roaming"这个路径哪?

#4


Environment.GetFolderPath 

#5


引用 4 楼 Saleayas 的回复:
Environment.GetFolderPath 

这个只能取得当前登录用户的信息,其他用户的怎么取得那?

#6


引用 5 楼 zxcmvpyj 的回复:
Quote: 引用 4 楼 Saleayas 的回复:

Environment.GetFolderPath 

这个只能取得当前登录用户的信息,其他用户的怎么取得那?

查windows注册表即可。

#7


引用 6 楼 yuwenge 的回复:
Quote: 引用 5 楼 zxcmvpyj 的回复:

Quote: 引用 4 楼 Saleayas 的回复:

Environment.GetFolderPath 

这个只能取得当前登录用户的信息,其他用户的怎么取得那?

查windows注册表即可。

怎么可以把注册表中的[HKey_Users]变成让人读懂的信息哪?如:S-1-5-18 是哪个用户怎么能知道那?

#8


大侠在那里阿,大家讨论一下好吗?

#9


1:我想取得系统全部用户
2:取得全部用户所对应的AppData路径。例如:@"C:\Users\"+用户名+@"\AppData\Roaming";
3:如果系统用户改名,比如说ABC用户,对应的路径是 @"C:\Users\"+ABC+@"\AppData\Roaming";
如果ABC用户改名为AB的话,对应的路径还是@"C:\Users\"+ABC+@"\AppData\Roaming"这个情况发生的场合,
现在已经用户名AB,如何取得@"C:\Users\"+ABC+@"\AppData\Roaming"这个路径哪?

大侠帮帮忙阿

#10


取得用户名可以用
            System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(
                @"\\" + System.Environment.MachineName + @"\root\cimv2",
                "Select * from Win32_Account Where LocalAccount = True AND SIDType = 1");

            foreach (System.Management.ManagementObject obj in searcher.Get())
            {
                System.Console.WriteLine(obj.Properties["Name"].Value);
            }

#11


这样来做吧

        static void Main(string[] args)
        {
            System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(
                 @"\\" + System.Environment.MachineName + @"\root\cimv2",
                 "SELECT * FROM Win32_Account WHERE LocalAccount = True AND SIDType = 1");

            foreach (System.Management.ManagementObject obj in searcher.Get())
            {
                RegistryKey key = Registry.LocalMachine.OpenSubKey(string.Format(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\{0}", obj.Properties["SID"].Value));

                if (key != null)
                    System.Console.WriteLine(string.Format("{0}\t\t{1}", obj.Properties["Name"].Value, key.GetValue("ProfileImagePath")));
            }

            System.Console.ReadKey();
        }

#12


::SHGetSpecialFolderPathA(NULL, path, CSIDL_APPDATA, FALSE);   

一句话即可  path是一个CString类型的空串