Поделиться через


Перечисление KNOWN_FOLDER_FLAG (shlobj_core.h)

Определяет константы, определяющие специальные параметры извлечения для известных папок (например, для использования при вызове функции SHGetKnownFolderIDList для получения пути к известной папке). Эти значения заменяют значения CSIDL , которые имеют параллельные значения.

Синтаксис

typedef enum {
  KF_FLAG_DEFAULT = 0x00000000,
  KF_FLAG_FORCE_APP_DATA_REDIRECTION = 0x00080000,
  KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000,
  KF_FLAG_FORCE_PACKAGE_REDIRECTION = 0x00020000,
  KF_FLAG_NO_PACKAGE_REDIRECTION = 0x00010000,
  KF_FLAG_FORCE_APPCONTAINER_REDIRECTION = 0x00020000,
  KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000,
  KF_FLAG_CREATE = 0x00008000,
  KF_FLAG_DONT_VERIFY = 0x00004000,
  KF_FLAG_DONT_UNEXPAND = 0x00002000,
  KF_FLAG_NO_ALIAS = 0x00001000,
  KF_FLAG_INIT = 0x00000800,
  KF_FLAG_DEFAULT_PATH = 0x00000400,
  KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200,
  KF_FLAG_SIMPLE_IDLIST = 0x00000100,
  KF_FLAG_ALIAS_ONLY = 0x80000000
} KNOWN_FOLDER_FLAG;

Константы

 
KF_FLAG_DEFAULT
Значение: 0x00000000
Не указывает специальные параметры извлечения.
KF_FLAG_FORCE_APP_DATA_REDIRECTION
Значение: 0x00080000
Представлено в Windows 10 версии 1709. При вызове из упаковаемого приложения указывает, что папки LocalAppData/RoamingAppData перенаправляются в частные расположения приложений, которые соответствуют путям, возвращенным из Windows.Storage.ApplicationData.Current в свойствах LocalFolder и RoamingFolder . Другие папки перенаправляются в подкаталоги LocalAppData.

Этот флаг используется с FOLDERID_AppDataDesktop, FOLDERID_AppDataDocuments, FOLDERID_AppDataFavorites и FOLDERID_AppDataProgramData. Он также предназначен для совместимости с приложениями .NET и не предназначен для использования непосредственно из приложения.
KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET
Значение: 0x00040000
Представлено в Windows 10 версии 1703. При выполнении в пакетном процессе указывает, что некоторые расположения файловой системы перенаправляются файловой системой в расположения, относящиеся к конкретному пакету. Этот флаг приводит к возврату целевого объекта направления для этих расположений. Это полезно в тех случаях, когда необходимо знать реальное расположение в файловой системе.
KF_FLAG_FORCE_PACKAGE_REDIRECTION
Значение: 0x00020000
Представлено в Windows 10 версии 1703. При запуске внутри процесса AppContainer или при предоставлении маркера AppContainer указывает, что некоторые папки перенаправляются в расположения, относящиеся к AppContainer, в пакете. Этот флаг принудительно выполняет перенаправление (для папок, которые обычно не перенаправляются) в целях упакованных процессов и может использоваться для совместного использования файлов между UWP и упакованными приложениями в одном пакете. Этот флаг заменяет нерекомендуемый KF_FLAG_FORCE_APPCONTAINER_REDIRECTION.
KF_FLAG_NO_PACKAGE_REDIRECTION
Значение: 0x00010000
Представлено в Windows 10 версии 1703. При выполнении внутри упаковаемого процесса или при предоставлении маркера упаковаемого процесса указывает, что некоторые папки перенаправляются в расположения, относящиеся к пакету. Этот флаг отключает перенаправление в расположениях, где он применяется, и вместо этого возвращает путь, который был бы возвращен, если бы он не выполнялся в упакованном процессе. Этот флаг заменяет нерекомендуемый KF_FLAG_NO_APPCONTAINER_REDIRECTION.
KF_FLAG_FORCE_APPCONTAINER_REDIRECTION
Значение: 0x00020000
Представлено в Windows 8. Этот флаг был нерекомендуем в Windows 10 версии 1703. Вместо этого используйте KF_FLAG_FORCE_PACKAGE_REDIRECTION .
KF_FLAG_NO_APPCONTAINER_REDIRECTION
Значение: 0x00010000
Представлено в Windows 8. Этот флаг был нерекомендуем в Windows 10 версии 1703. Вместо этого используйте KF_FLAG_NO_PACKAGE_REDIRECTION .
KF_FLAG_CREATE
Значение: 0x00008000
Указывает принудительное создание указанной папки, если эта папка еще не существует. Применяются предопределенные для этой папки условия безопасности. Если папка не существует и не может быть создана, функция возвращает код сбоя и путь не возвращается. Это значение можно использовать только со следующими функциями и методами:

* SHGetKnownFolderPath
* SHGetKnownFolderIDList
* IKnownFolder::GetIDList
* IKnownFolder::GetPath
* IKnownFolder::GetShellItem
KF_FLAG_DONT_VERIFY
Значение: 0x00004000
Указывает, что не следует проверять существование папки перед попыткой получить путь или idList. Если этот флаг не установлен, предпринимается попытка убедиться, что папка действительно присутствует в пути. Если эта проверка завершается ошибкой из-за отсутствия или недоступности папки, функция возвращает код сбоя и путь не возвращается.

Если папка находится в сети, выполнение функции может занять больше времени. Таким образом, установка этого флага может уменьшить эту задержку.
KF_FLAG_DONT_UNEXPAND
Значение: 0x00002000
Спецификации для хранения полного пути в реестре без использования строк среды. Если этот флаг не задан, то части пути могут быть представлены строками среды, такими как %USERPROFILE%. Этот флаг можно использовать только с SHSetKnownFolderPath и IKnownFolder::SetPath.
KF_FLAG_NO_ALIAS
Значение: 0x00001000
Указывает, чтобы получить истинный системный путь к папке без каких-либо псевдонимов заполнителей, таких как %USERPROFILE%, возвращаемых SHGetKnownFolderIDList и IKnownFolder::GetIDList. Этот флаг не влияет на пути, возвращаемые SHGetKnownFolderPath и IKnownFolder::GetPath. По умолчанию известные функции и методы извлечения папок возвращают псевдонимный путь, если псевдоним существует.
KF_FLAG_INIT
Значение: 0x00000800
Указывает на инициализацию папки с помощью ее Desktop.ini параметров. Если папку не удается инициализировать, функция возвращает код сбоя и путь не возвращается. Этот флаг всегда должен сочетаться с KF_FLAG_CREATE.

Если папка находится в сети, выполнение функции может занять больше времени.
KF_FLAG_DEFAULT_PATH
Значение: 0x00000400
Указывает для получения пути по умолчанию для известной папки. Если этот флаг не задан, функция извлекает текущий (и, возможно, перенаправленный) путь к папке. Выполнение этого флага включает проверку существования папки, если не задано KF_FLAG_DONT_VERIFY .
KF_FLAG_NOT_PARENT_RELATIVE
Значение: 0x00000200
Указывает, чтобы получить путь по умолчанию к папке независимо от текущего расположения ее родительского элемента. также необходимо задать KF_FLAG_DEFAULT_PATH.
KF_FLAG_SIMPLE_IDLIST
Значение: 0x00000100
Указывает на создание простого СПИСКА ИДЕНТИФИКАТОРОВ (PIDL). Это значение можно использовать, если требуется получить путь к файловой системе. Но не указывайте это значение, если вы извлекете локализованное отображаемое имя папки, так как оно может разрешиться неправильно.
KF_FLAG_ALIAS_ONLY
Значение: 0x80000000
Представлено в Windows 7. Указывает для получения только псевдонимов PIDLs. Не используйте путь к файловой системе.

Комментарии

Эти значения, за исключением KF_FLAG_ALIAS_ONLY, были определены в Windows Vista как отдельные константы. Они определяются как перечисление только в Windows 7 и более поздних версиях. Однако все базовые числовые значения одинаковы в любой форме.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Верхняя часть shlobj_core.h (включая Shlobj.h)

См. также раздел