Как получить доступ к списку последних мест в Windows 7 с помощью C # - PullRequest
1 голос
/ 03 мая 2011

Windows 7 представила специальную папку «Недавние места» в проводнике, в которой отображаются недавно использованные папки. Эта папка включает только папки, то есть исключает файлы.

Это отличается от папки Environment.SpecialFolder.Recent, и, насколько я вижу, CSIDL и KNOWNFOLDER не отображают папку Недавние места.

Как получить содержимое специальной папки Recent Places с помощью C #?

1 Ответ

1 голос
/ 03 мая 2011

Поскольку прямого доступа к этой «виртуальной папке», по-видимому, нет, я использовал обходной путь.

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 взято из этого ответа: Как разрешить .lnk в C #

РЕДАКТИРОВАТЬ: изменено с использования атрибутов файла на Directory.Exists, так как флаг FileAttribute.Directory, кажется, не всегда установлен правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...