让我详细说说。 “项目”是指您在桌面 (Windows) 中看到的所有项目,包括“我的电脑”、“回收站”、所有快捷方式等。如果我选择桌面上的所有项目,我会在属性中得到计数显示。这是我想要的,以编程方式。
我遇到的问题:
我们看到的桌面有来 self 的帐户的项目,还有 All Users
的桌面项目以及其他快捷方式,如“我的电脑”、“回收站”。总共有3件事。所以我不能只从物理路径到桌面目录获取项目计数。所以这失败了:
int count =
Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder
.DesktopDirectory)
).Length;
我知道 SpecialFolder.Desktop
代表我们看到的逻辑桌面。但这再次失败,因为 GetFolderPath()
再次获取用户桌面的物理路径:
int count =
Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder
.Desktop)
).Length;
在用户桌面上获取总计数的正确方法是什么?
最佳答案
Windows shell 对此提供全面全面的支持。
- 调用
SHGetDesktopFolder()
得到一个IShellFolder
用于桌面。 - 调用
IShellFolder::EnumObjects()
获取内容。
这Code Project article从 C# 的角度给出了一些使用示例。
关于c# - 如何获取(逻辑)桌面上的项目总数(C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7426889/