Работа с известными папками в приложениях
Система известных папок позволяет взаимодействовать с определенными высокопрофильными папками, которые по умолчанию присутствуют в Windows. Он также позволяет выполнять те же действия с папками, установленными и зарегистрированными в системе известных папок приложениями. В этом разделе рассматриваются возможные взаимодействия, предоставляемые API известных папок.
Важно!
Чтобы перенаправить папки "Документы", "Изображения" или "Рабочий стол" в OneDrive, используйте перенос известных папок OneDrive вместо метода перенаправления, описанного в этой статье. Дополнительные сведения см. в статье Перенаправление и перемещение известных папок Windows в OneDrive.
Известные интерфейсы папок
Существует два интерфейса известных папок: IKnownFolder и IKnownFolderManager.
IKnownFolderManager предоставляет многие из более общих функций в отношении этих папок. Его методы позволяют:
- Получите IKnownFolder на основе значения KNOWNFOLDERID этой папки, ее канонического имени, пути, выраженного в виде строки, или пути, выраженного как IDList.
- Преобразуйте CSIDL в его эквивалент KNOWNFOLDERID или преобразуйте KNOWNFOLDERID в его устаревший эквивалент CSIDL.
- Зарегистрируйте или отмените регистрацию известной папки в системе.
- Получение всех значений KNOWNFOLDERID , зарегистрированных в этой системе.
- Перенаправление известной папки в новое расположение.
IKnownFolder предоставляет метод, который позволяет папке перенаправлять себя, предоставляя новый путь. Другие методы получают сведения о конкретной известной папке, в том числе:
- Категория папки: виртуальная, фиксированная, общая или на пользователя.
- Тип папки, например сжатые, документы, изображения или пользовательские файлы.
- KNOWNFOLDERID папки.
- Полный путь к папке в виде IDList или строки. Кроме того, относительный путь к родительской папке.
- Каноническое имя папки.
- Подсказка, отображаемая для папки.
- Значок, отображаемый для папки.
- Описание папки с описанием ее назначения и использования.
- Можно ли перенаправить папку.
IKnownFolder также предоставляет метод для извлечения IShellItem на основе папки. Это позволяет привязать папку к обработчику, сравнить две папки и получить атрибуты, отображаемое имя и родительскую папку папки.
Перенаправление
Перенаправление папок является важной функцией известной системы папок. Все известные папки категории общихKF_CATEGORY_COMMON**** или KF_CATEGORY_PERUSER пользователямогут быть перенаправлены. Однако папка виртуальнойKF_CATEGORY_VIRTUAL категории**** или фиксированногоKF_CATEGORY_FIXED*** не может быть перенаправлена.
Папки можно перенаправлять либо в другое расположение на том же компьютере, либо в расположение в сети. В случае перенаправления сети папку можно кэшировать локально с помощью кэширования на стороне клиента, чтобы обеспечить автономный доступ. Однако даже если локальный кэш существует, к перенаправленной папке необходимо обращаться по сети.
Перенаправление папок не является новым для Windows Vista. Например, в Windows XP некоторые папки, определенные системой CSIDL, можно перенаправить с помощью вызова SHSetFolderPath или путем изменения записи CSIDL в реестре. В Windows Vista и более поздних версиях перенаправление должно выполняться через IKnownFolder::SetPath или SHSetKnownFolderPath.
Чтобы определить, можно ли перенаправить папку, вызовите IKnownFolder::GetRedirectionCapabilities. Если не удается перенаправить папку, этот вызов может дать объяснение.
Если папка перенаправляется в сетевое расположение, методы IKnownFolder по-прежнему могут быть успешно вызваны для нее.
Связанные темы