获取每个用户的 SpecialFolder.MyDocuments 文件夹 [英] Get SpecialFolder.MyDocuments folders of each user

查看:22
本文介绍了获取每个用户的 SpecialFolder.MyDocuments 文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的机器上运行着 Windows 服务.如何获取每个用户的 MyDocuments 文件夹?

I have a windows service running on my machine. How can I get MyDocuments folders of each users?

例如:

对于 Windows XP,我必须得到列表:

For Windows XP I must get list:

  • C:\Documents and Settings\User1\My Documents
  • C:\Documents and Settings\User2\My Documents
  • ...

对于 Windows 10,我必须获得列表:

For Windows 10 I must get list:

  • C:\Users\User1\Documents\

  • C:\Users\User1\Documents\

C:\Users\User2\Documents\

C:\Users\User2\Documents\

...

如何获取这些列表?

推荐答案

我建议使用这个解决方案然后就枚举文件夹(针对每个用户).

I would suggest using this solution and then just enumerate folders ( for each user ).

// getUserProfilesPath() is a method from https://stackoverflow.com/a/41752173/3179310
string path = getUserProfilesPath();
// now use WMIC to get all users on the local machine
SelectQuery query = new SelectQuery("Win32_UserAccount");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
foreach (ManagementObject result in searcher.Get())
{
    // and check if their folder exists
    if(Directory.Exists(Path.Combine(path, result["Name"])))
    {
        // user folder exists so now check if it has Documents folder
        if(DirectoryExists(Path.Combine(path, result["Name"], "Documents")))
        {
            DirectoryInfo userDocuments = new DirectoryInfo(Path.Combine(path, result["Name"], "Documents"));
            // userDocuments is now a directory info of that user's documents folder
        }
    }
}

这篇关于获取每个用户的 SpecialFolder.MyDocuments 文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆