如何使用 C# 访问 Windows 7 中的“最近的地点”列表

发布于 2024-11-04 20:20:46 字数 403 浏览 0 评论 0原文

Windows 7 在资源管理器中引入了“最近的位置”特殊文件夹,它会显示最近访问的文件夹。该文件夹仅包含文件夹,即不包含文件。

这与 Environment.SpecialFolder.Recent 文件夹不同,据我所知,CSIDLKNOWNFOLDER 不列出“最近的地点”文件夹。

如何使用 C# 获取“最近的地点”特殊文件夹的内容?

Windows 7 introduced a Recent Places special folder in Explorer which shows you the recently accessed folders. This folder includes only folders, i.e. it excludes files.

This is different from the Environment.SpecialFolder.Recent folder and as far as I can see both CSIDL and KNOWNFOLDER don't list a Recent Places folder.

How can I get the contents of the Recent Places special folder using C#?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无语# 2024-11-11 20:20:47

由于似乎无法直接访问此“虚拟文件夹”,因此我使用了解决方法。

string[] GetRecentPlaces()
{
    var places = new List<string>();
    foreach (var lnk in Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Recent), "*.lnk"))
    {
        var path = LinkHelper.ResolveShortcut(lnk);
        if (Directory.Exists(path))
        {
            places.Add(path);
        }
    }
    return places.ToArray();
}

其中 LinkHelper 取自此答案:如何解决C# 中的 .lnk

编辑:从使用文件属性更改为 Directory.Exists,因为 FileAttribute.Directory 标志似乎并不总是正确设置。

As there doesn't seem to be any direct access to this 'virtual folder' I used a workaround.

string[] GetRecentPlaces()
{
    var places = new List<string>();
    foreach (var lnk in Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Recent), "*.lnk"))
    {
        var path = LinkHelper.ResolveShortcut(lnk);
        if (Directory.Exists(path))
        {
            places.Add(path);
        }
    }
    return places.ToArray();
}

where LinkHelper is taken from this answer: How to resolve a .lnk in C#

EDIT: changed from using file attributes to Directory.Exists as FileAttribute.Directory flag doesn't seem to be always set correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文