Windows 7在资源管理器中引入了Recent Places特殊文件夹,向您显示最近访问过的文件夹。此文件夹仅包含文件夹,即不包含文件。
这与Environment.SpecialFolder.Recent
文件夹不同,据我所知,CSIDL和KNOWNFOLDER都没有列出“最近的地点”文件夹。
如何使用C#获取Recent Places特殊文件夹的内容?
答案 0 :(得分:1)
由于似乎没有直接访问这个'虚拟文件夹',我使用了一种解决方法。
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标志似乎并不总是正确设置。