Как программно добавить папку в Избранное в проводнике Windows

Я знаю о решениях, ответили здесь. По сути, идея заключается в создании ссылки на папку в %USERPROFILE%\Favoriates папка.

Однако это не работает для меня. Я использую Windows8 (не знаю, имеет ли это значение). В моем %USERPROFILE%\Favoriates, он содержит вспомогательные элементы для IE, а не файловый менеджер.

Я попытался найти эти настройки в реестре и файловой системе, создав папку с уникальным именем и добавив ее в обозреватель файлов. Затем найдите имя в реестре и файловой системе. Ничего не принесло.

5 ответов

Решение

Похоже, вы хотите%UserProfile%\Links.

Закрепленные избранное

Программно вы хотите получить местоположение, используя SHGetKnownFolderPath с KNOWNFOLDERID_Links вместо жесткого кодирования любого местоположения, а затем использовать IShellLink создать файл ярлыка в этом месте.

Вот пример C# для первой части:

[DllImport("shell32.dll")]
static extern int SHGetKnownFolderPath(
                      [MarshalAs(UnmanagedType.LPStruct)] Guid knownFolderId, 
                      uint flags,
                      IntPtr userToken,
                      [MarshalAs(UnmanagedType.LPWStr)] out string knownFolderPath);

// this corresponds to the KNOWNFOLDERID_Links constant:
public static readonly Guid Links = new Guid("bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968");

public static string GetKnownFolderPath(Guid knownFolderId)
{
    string path;
    int result = SHGetKnownFolderPath(knownFolderId, 0, IntPtr.Zero, out path);
    // … (error handling; check result for E_FAIL, E_INVALIDARG, or S_OK)
    return path;
}
Function AddAFolderShortCut($fileName, $targetPath)
{
    Write-Host "Creating Shortcut $fileName points to $targetPath"
    $WshShell = New-Object -comObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut("$env:USERPROFILE\Links\$fileName.lnk")
    $Shortcut.TargetPath = $targetPath
    $Shortcut.Save()
}

AddAFolderShortCut "FolderName" "C:\folderpath"

Ах, похоже, для Windows 8 это место изменилось на %USERPROFILE%\Links, скорее, чем %USERPROFILE%\Favoriates,

Итак, чтобы ответить на мой вопрос. Чтобы программно добавить папку в проводник файлов "Избранное" в Windows 8, необходимо сделать ссылку на эту папку в %USERPROFILE%\Links папка:

mklink /D %USERPROFILE%\Links\<Link_Name> <Tartget_Folder_Path>

Избранные проводника хранятся здесь %USERPROFILE%\Links,

Другие вопросы по тегам