繁体   English   中英

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

[英]How can I access the Recent Places list in Windows 7 using C#

Windows 7 在资源管理器中引入了一个最近的地方特殊文件夹,它向您显示最近访问的文件夹。 该文件夹仅包括文件夹,即不包括文件。

这与Environment.SpecialFolder.Recent文件夹不同,据我所知, CSIDLKNOWNFOLDER都没有列出“Recent Places”文件夹。

如何使用 C# 获取“Recent Places”特殊文件夹的内容?

由于似乎没有任何直接访问此“虚拟文件夹”的权限,因此我使用了一种解决方法。

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取自这个答案: How to resolve a.lnk in C#

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM