获取每个用户的 SpecialFolder.MyDocuments 文件夹 [英] Get SpecialFolder.MyDocuments folders of each user
本文介绍了获取每个用户的 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屋!
查看全文