函数参考


FileOpenDialog

显示一个文件打开对话框.

FileOpenDialog ( "标题", "起始目录", "文件类型" [, 选项 [, "默认文件名" [, 窗口句柄]]] )

参数

标题 文件打开对话框的标题.
起始目录 在文件选择对话框的文件树中显示的起始目录.
文件类型 筛选文件类型,例如:"所有文件(*.*)" 或 "文本文档(*.txt)" 又或者一个筛选组"所有文件 (*.*)|文本文件 (*.txt)" (参考备注).
选项 [可选参数] 对话框相关选项:若要同时应用多个选项,只需把各个数值加起来即可.
  1 = (如果用户键入文件名则)目标文件必须确实存在
  2 = (如果用户键入路径,并且以斜杠"\"结束则)路径必须确实存在
  4 = 允许选择多个文件
  8 = (如果目标文件并不存在则)提示用户(弹出对话框)可创建新文件
默认文件名 [可选参数] 提示用户可打开的默认文件名(在文件名列表框中预填此文件名,默认为空"").
窗口句柄 [可选参数] 指定这个对话框的父窗口的窗口句柄.

返回值

成功: 返回选中文件的完整路径.如果选中多个文件则以竖线分割,例如"目录|文件1|文件2|..."
失败: 设置 @error
@error: 1 - 文件选择失败.
2 - 无效文件类型筛选.

注意/说明

如需筛选多种文件类型请参照下面的示例在 文件类型 参数中使用分号来分隔每个文件类型(并把它们放在小括号内).
多组筛选请使用管道符 "|"

如果有指定默认文件名参数,则选项参数也必须指定.如果不需要指定选项则使用数值 0 即可.

Windows 下有些特殊的文件夹(比如说"我的文档")也可以用来作为起始目录使用,详情请查看附录.

如果执行成功,将改变@WorkingDir的值.

相关

FileSaveDialog, FileSelectFolder, StringSplit

示例/演示


Local $message = "按下 Ctrl 或 Shift 键选择多个文件."

Local $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