Известные папки
В Windows Vista представлены новые сценарии хранения и новое пространство имен профиля пользователя. Чтобы устранить эти новые факторы, была заменена старая система ссылок на стандартные папки значением CSIDL . В Windows Vista на эти папки ссылается новый набор значений GUID, называемый известными идентификаторами папок.
Система известных папок предоставляет следующие преимущества:
- Независимые поставщики программного обеспечения (ISV) могут расширить набор идентификаторов известных папок своими собственными. Они могут определять папки, предоставлять им идентификаторы и регистрировать их в системе. Не удалось расширить значения CSIDL.
- Можно перечислить все известные папки в системе. Ни в каких API не предусмотрена эта функция для значений CSIDL. Дополнительные сведения см. в разделе IKnownFolderManager::GetFolderIds .
- Известная папка, добавленная независимого поставщика программного обеспечения, может добавлять пользовательские свойства, которые позволяют ему объяснить ее назначение и предполагаемое использование.
- Многие известные папки можно перенаправлять в новые расположения, включая сетевые расположения. В системе CSIDL можно перенаправить только папку Мои документы .
- Известные папки могут иметь пользовательские обработчики для использования во время создания или удаления.
Система CSIDL и API, использующие значения CSIDL, по-прежнему поддерживаются для обеспечения совместимости. Однако использовать их в новых разработках не рекомендуется.
В следующих разделах рассматриваются особенности системы известных папок.
- Работа с известными папками в приложениях
- Расширение известных папок с помощью пользовательских папок
- KNOWNFOLDERID
На следующих справочных страницах описываются функции известных папок Win32, которые можно использовать для получения расположения известных папок или перенаправления их в новое расположение. Эти функции заменяют старые функции Win32. Новые функции предоставляются для предоставления эквивалентного поведения старым функциям, но каждая новая функция также дублируется API модели com.
Новая функция | Заменяет | Эквивалент COM |
---|---|---|
SHGetKnownFolderPath | SHGetFolderPath | IKnownFolder::GetPath |
SHGetKnownFolderIDList | SHGetFolderLocation | IKnownFolder::GetIDList |
SHSetKnownFolderPath | SHSetFolderPath | IKnownFolder::SetPath |
На следующих справочных страницах описываются API известных папок COM, которые предоставляют все функциональные возможности перечисленных выше API Win32, а также возможность перечисления всех известных папок, доступа к свойствам известных папок и расширения стандартного набора известных папок.
Пример C++, демонстрирующий API известных папок, включен в пакет SDK для Windows. После установки пакета Windows SDK на компьютере пример можно найти в папке %ProgramFiles%\Microsoft SDK\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\KnownFolders.