- FileSelectDialog
- FileFindFirst
- FileFindNext
- FileFindClose
- FileIsExist
- FileOpen
- FileClose
- FileCopy
- FileDelete
- FileMove
- FileFlush
- FileGetInteger
- FileIsEnding
- FileIsLineEnding
- FileReadArray
- FileReadBool
- FileReadDatetime
- FileReadDouble
- FileReadFloat
- FileReadInteger
- FileReadLong
- FileReadNumber
- FileReadString
- FileReadStruct
- FileSeek
- FileSize
- FileTell
- FileWrite
- FileWriteArray
- FileWriteDouble
- FileWriteFloat
- FileWriteInteger
- FileWriteLong
- FileWriteString
- FileWriteStruct
- FileLoad
- FileSave
- FolderCreate
- FolderDelete
- FolderClean
FileSelectDialog
Создает диалог открытия/создания файла или папки.
int FileSelectDialog(
|
Параметры
caption
[in] Заголок диалогового окна.
initial_dir
[in] Имя начальной папки относительно папки MQL5\Files, содержимое которой будет показано в диалоговом окне. Если значение равно NULL, то в диалоге будет показана папка MQL5\Files.
filter
[in] Фильтр расширений файлов, которые будут показаны в диалоговом окне для выбора. Файлы других форматов будут скрыты.
flags
[in] Комбинация флагов, определяющая режим диалогового окна. Флаги определены следующим образом:
FSD_WRITE_FILE – диалог открытия файла;
FSD_SELECT_FOLDER – разрешает выбирать только папки;
FSD_ALLOW_MULTISELECT – разрешает выбирать несколько файлов;
FSD_FILE_MUST_EXIST – выбранные файлы должны существовать;
FSD_COMMON_FOLDER – файл расположен в общей папке всех клиентских терминалов \Terminal\Common\Files.
filenames[]
[out] Массив строк, в который будут помещены имена выбранных файлов/папок.
default_filename
[in] Имя файла/папки по умолчанию. Если задано, то это имя автоматически подставляется в диалог открытия и возвращается в массиве filenames[] при тестировании.
Возвращаемое значение
В случае успешного завершения функция вернет количество выбранных файлов, имена которых можно получить в filenames[]. Если пользователь не выбрал файл и закрыл диалог, то функция вернёт 0. В случае неудачного выполнения вернётся значение меньше 0, код ошибки можно получить с помощью GetLastError().
Примечание
Из соображений безопасности в языке MQL5 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL5, не могут находиться за пределами файловой "песочницы", а именно за пределами папки MQL5\Files.
Имя начальной папки initial_dir ищется в папке клиентского терминала в подпапке MQL5\Files (или каталог_агента_тестирования\MQL5\Files в случае тестирования). Если среди флагов указан FSD_COMMON_FOLDER, то начальная папка ищется в общей папке всех клиентских терминалов \Terminal\Common\Files.
Параметр filter указывает допустимые файлы и должен быть задан в формате "<описание 1>|<расширение 1>|<описание 2>|<расширение 2>...". Например, "Text files (*.txt)|*.txt|All files (*.*)|*.*", при этом первое расширение "Text files (*.txt)|*.txt" будет выбрано как тип файла по умолчанию.
Если filter=NULL, то маской выбора файлов в диалоговом окне будет "All Files (*.*)|*.*|"
Если задан параметр default_filename, то во время невизуального тестирования вызов FileSelectDialog() вернёт 1, а само значение default_filename будет скопировано в массив filenames[].
Функция запрещена в пользовательских индикаторах, так как вызов FileSelectDialog() приостанавливает работу потока исполнения на всё время ожидания ответа пользователя. А так как все индикаторы по каждому символу выполняются в едином потоке, то такая остановка сделает невозможной работу всех графиков на всех таймфреймах по данному символу.
Пример:
//+------------------------------------------------------------------+
|
Смотри также
FileOpen, FileIsExist, FileDelete, FileMove, FolderCreate, FolderDelete, FolderClean, Флаги открытия файлов