# Function Reference

FileOpenDialog

Initiates a Open File Dialog.

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

Parameters

title | Title text of the Dialog GUI.
init dir | Initial directory selected in the GUI file tree.
filter | File type single filter such as "All (*.*)" or "Text files (*.txt)" or multiple filter groups such as "All (*.*)|Text files (*.txt)" (See Remarks).
options | [optional] Dialog Options: To use more than one option, add the required values together. 1 = File Must Exist (if user types a filename) 2 = Path Must Exist (if user types a path, ending with a backslash) 4 = Allow MultiSelect 8 = Prompt to Create New File (if does not exist)
default name | [optional] Suggested file name for the user to open.

Return Value

Success: | Returns the full path of the file(s) chosen. Results for multiple selections are "Directory|file1|file2|..."
Failure: | Sets @error to 1.

Remarks

Separate the file filters with a semicolon as shown in the example.
Multiple groups of filters are separated by a pipe "|".
If default name is given, options must also be given. If none of the options are wanted, use 0 for options.
Special Windows folders (such as "My Documents") can sometimes be set as the init dir; see Appendix.
@WorkingDir is changed on successful return.

Related

FileSaveDialog, FileSelectFolder, StringSplit

Example

$message = "Hold down Ctrl or Shift to choose multiple files."
$var = FileOpenDialog($message, "C:\Windows\", "Images (*.jpg;*.bmp)", 1 + 4 )
If @error Then
MsgBox(4096,"","No File(s) chosen")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096,"","You chose " & $var)
EndIf
; Multiple filter group
$message = "Hold down Ctrl or Shift to choose multiple files."
$var = FileOpenDialog($message, "C:\Windows\", "Images (*.jpg;*.bmp)|Videos (*.avi;*.mpg)", 1 + 4 )
If @error Then
MsgBox(4096,"","No File(s) chosen")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096,"","You chose " & $var)
EndIf