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


Метод IFileDialog::SetFolder (shobjidl_core.h)

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

Синтаксис

HRESULT SetFolder(
  [in] IShellItem *psi
);

Параметры

[in] psi

Тип: IShellItem*

Указатель на интерфейс, представляющий папку.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Эта папка переопределяет все папки "последние использованные". Если этот метод вызывается при отображении диалогового окна, это приводит к переходу диалогового окна к указанной папке.

Как правило, мы не рекомендуем использовать этот метод. При вызове SetFolder перед отображением диалогового окна последнее расположение, в котором пользователь сохранил или открыл его, не отображается. Если для такого поведения нет конкретных причин, это не является хорошим или ожидаемым взаимодействием с пользователем, и поэтому его следует избегать. Почти во всех случаях лучшим методом является IFileDialog::SetDefaultFolder .

В Windows 7, если путь к папке, указанной через psi , является путем по умолчанию к известной папке, в диалоговом окне используется текущий путь к известной папке. Этот путь может быть не таким же, как путь, указанный в psi; например, если известная папка была перенаправлена. Если известной папкой является библиотека (виртуальные папки "Документы", "Музыка", "Изображения" и "Видео"), в диалоговом окне используется путь к библиотеке. Если указанная библиотека скрыта (по умолчанию на Windows 8.1), в диалоговом окне используется расположение сохранения библиотеки по умолчанию, например папка "Документы Microsoft OneDrive" для библиотеки "Документы". Из-за этих сопоставлений расположение папки, используемое в диалоговом окне, может быть не совсем таким, как указано при вызове этого метода.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header shobjidl_core.h (включая Shobjidl.h)