↑  ←  Описание функции


FileOpenDialog

Отображает диалог открытия файла.

FileOpenDialog ( "title", "init dir", "filter" [, options = 0 [, "default name" [, hwnd ]]] )

Параметры

title Заголовок диалогового окна.
init dir Каталог, который будет открыт изначально в диалоговом окне.
filter Типы файлов, доступные для выбора. Например (см. также примечания):
"Все (*.*)"
"Текстовые файлы (*.txt)"
"Все (*.*)|Рисунки (*.bmp;*.gif;*.jpg)|Видео (*.avi;*.mpg)"
options [необязательный] Опции диалога: сложите необходимые значения, чтобы использовать опции вместе.
  1 = Файл должен существовать (если пользователем был выбран файл?)
  2 = Путь должен существовать (если пользователем был выбран путь, оканчивающийся обратным слешем)
  4 = Разрешить выбор нескольких объектов
  8 = Выдать запрос на создание нового файла (если не существует)
default name [необязательный] Имя файла по умолчанию, которое будет выбрано при создании диалога. По умолчанию нет ("").
hwnd [необязательный] Дескриптор окна для использования в качестве родительского по отношению к этому диалоговому окну.

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

Успех:Возвращает полный путь и имена выбранных файлов. Результат для нескольких объектов: "Каталог|Файл1|Файл2|..."
Ошибка:Устанавливает значение @error
@error:1 - ошибка при выборе файла.
2 - неправильный фильтр.

Примечания

Разделяйте фильтры выбора типов файлов с помощью точки с запятой, как указано в примере.
Если необходимо использовать несколько групп фильтров, следует разделять их с помощью символа "|".

Если указано имя файла по умолчанию, опции диалога также должны быть указаны. Если нет необходимости их использовать, оставьте значение параметра равным 0.

Специальные каталоги Windows (такие как "Мои Документы") могут быть заданы корневыми при использовании правильного CLSID, указанного в приложении.

@WorkingDir изменяется при удачном выполнении функции.

См. также

FileSaveDialog, FileSelectFolder

Пример

$message = "Удерживайте клавиши Ctrl или Shift, чтобы выбрать несколько файлов."

$var = FileOpenDialog($message, @WindowsDir & "\", "Рисунки (*.jpg;*.bmp)", 1 + 4)

If @error Then
    MsgBox(4096, "", "Не выбрано ни одного файла")
Else
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096, "", "Вы выбрали " & $var)
EndIf

; Множественная группа фильтров (категорий типов файлов)
$message = "Удерживайте клавиши Ctrl или Shift, чтобы выбрать несколько файлов."

$var = FileOpenDialog($message, @WindowsDir & "", "Рисунки (*.jpg;*.bmp)|Видео (*.avi;*.mpg)", 1 + 4)

If @error Then
    MsgBox(4096, "", "Не выбрано ни одного файла")
Else
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096, "", "Вы выбрали " & $var)
EndIf