Function Reference


FileOpenDialog

Initiates a Open File Dialog.

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

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, BitOR the required values together.
$FD_FILEMUSTEXIST (1) = File Must Exist (if user types a filename)
$FD_PATHMUSTEXIST (2) = Path Must Exist (if user types a path, ending with a backslash)
$FD_MULTISELECT (4) = Allow MultiSelect
$FD_PROMPTCREATENEW (8) = Prompt to Create New File (if does not exist)

Constants are defined in FileConstants.au3.
default name [optional] Suggested file name for the user to open. Default is blank ("").
hwnd [optional] The window handle to use as the parent for this dialog.

Return Value

Success: the full path of the file(s) chosen. Results for multiple selections are "Directory|file1|file2|...".
Failure: sets the @error flag to non-zero.
@error: 1 = File selection failed.
2 = Bad file filter

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 be set as root by using the right CLSID detailed in the Appendix.

@WorkingDir is changed on successful return.

Related

FileSaveDialog, FileSelectFolder, StringSplit

Example

Example 1

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
Example()
Func  Example()
; Create a constant variable in Local scope of the message to display in FileOpenDialog.
Local Const $sMessage= "Hold down Ctrl or Shift to choose multiple files."
; Display an open dialog to select a list of file(s).
Local $sFileOpenDialog= FileOpenDialog ($sMessage,@WindowsDir &"\","Images (*.jpg;*.bmp)|Videos (*.avi;*.mpg)",BitOR ($FD_FILEMUSTEXIST,$FD_MULTISELECT))
If @error Then
; Display the error message.
MsgBox ($MB_SYSTEMMODAL,"","No file(s) were selected.")
; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
FileChangeDir (@ScriptDir )
Else
; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
FileChangeDir (@ScriptDir )
; Replace instances of "|" with @CRLF in the string returned by FileOpenDialog.
$sFileOpenDialog= StringReplace ($sFileOpenDialog,"|",@CRLF )
; Display the list of selected files.
MsgBox ($MB_SYSTEMMODAL,"","You chose the following files:"&@CRLF &$sFileOpenDialog)
EndIf
EndFunc ;==>Example

Example 2

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
Example()
Func  Example()
; Create a constant variable in Local scope of the message to display in FileOpenDialog.
Local Const $sMessage= "Select a single file of any type."
; Display an open dialog to select a file.
Local $sFileOpenDialog= FileOpenDialog ($sMessage,@WindowsDir &"\","All (*.*)",$FD_FILEMUSTEXIST)
If @error Then
; Display the error message.
MsgBox ($MB_SYSTEMMODAL,"","No file was selected.")
; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
FileChangeDir (@ScriptDir )
Else
; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
FileChangeDir (@ScriptDir )
; Replace instances of "|" with @CRLF in the string returned by FileOpenDialog.
$sFileOpenDialog= StringReplace ($sFileOpenDialog,"|",@CRLF )
; Display the selected file.
MsgBox ($MB_SYSTEMMODAL,"","You chose the following file:"&@CRLF &$sFileOpenDialog)
EndIf
EndFunc ;==>Example

AltStyle によって変換されたページ (->オリジナル) /