如何从公共对话框控件中提取多个文件名称
代码如下:
Private Sub Command1_Click()
Dim i As Integer, title As String, FileNames As String
With CommonDialog1
.FileName = ""
.Filter = "All Files|*.*" '过滤器指定在对话框的文件列表框中显示的文件的类型
.Flags = &H200 '允许多重选择。
.Action = 1
i = InStrRev(.FileName, "/")'
title = Left(.FileName, i)' 目录
FileNames = Mid(.FileName, i + 1)' all selectes files
End With
FileNames = Replace(FileNames, Chr(32), vbCrLf)
MsgBox FileNames, vbYesNo, title '显示对话框
End Sub
说明(摘自MSDN):
-------------------------------------------------------------------------------------------------------------------------------
flags属性:
cdlOFNAllowMultiselect | &H200 | 它指定文件名列表框允许多重选择。 运行时,通过按 SHIFT 键以及使用 UP ARROW 和 DOWN ARROW 键可选择多个文件。作完此操作后,FileName 属性就返回一个包含全部所选文件名的字符串。串中各文件名用空格隔开。 |
cdlOFNCreatePrompt | &H2000 | 当文件不存在时对话框要提示创建文件。该标志自动设置 cdlOFNPathMustExist 和 cdlOFNFileMustExist 标志。 |
cdlOFNExplorer | &H80000 | 它使用类似资源管理器的打开一个文件的对话框模板。适用于 Windows 95 和 Windows NT 4.0。 |
CdlOFNExtensionDifferent | &H400 | 它指示返回的文件扩展名与 DefaultExt 属性指定的扩展名不一致。如果 DefaultExt 属性是 Null,或者扩展相匹配,或者没有扩展时,此标志不设置。当关闭对话框时,可以检查这个标志的值。 |
cdlOFNFileMustExist | &H1000 | 它指定只能输入文件名文本框已经存在的文件名。如果该标志被设置,则当用户输入非法的文件名时,要显示一个警告。该标志自动设置 cdlOFNPathMustExist 标志。 |
cdlOFNHelpButton | &H10 | 使对话框显示帮助按钮。 |
cdlOFNHideReadOnly | &H4 | 隐藏只读复选框。 |
cdlOFNLongNames | &H200000 | 使用长文件名。 |
cdlOFNNoChangeDir | &H8 | 强制对话框将对话框打开时的目录置成当前目录。 |
CdlOFNNoDereferenceLinks | &H100000 | 不要间接引用外壳链接(也称作快捷方式)。缺省时,选取外壳链接会引起它被外壳间接引用。 |
cdlOFNNoLongNames | &H40000 | 无长文件名。 |
CdlOFNNoReadOnlyReturn | &H8000 | 它指定返回的文件不能具有只读属性,也不能在写保护目录下面。 |
cdlOFNNoValidate | &H100 | 它指定公共对话框允许返回的文件名中含有非法字符。 |
cdlOFNOverwritePrompt | &H2 | 使“另存为”对话框当选择的文件已经存在时应产生一个信息框,用户必须确认是否覆盖该文件。 |
cdlOFNPathMustExist | &H800 | 它指定只能输入有效路径。如果设置该标志,输入非法路径时,应显示一个警告信息。 |
cdlOFNReadOnly | &H1 | 建立对话框时,只读复选框初始化为选定。该标志也指示对话框关闭时只读复选框的状态。 |
cdlOFNShareAware | &H4000 | 它指定忽略共享冲突错误。 |
Action 属性:
0 | 没有操作。 |
1 | 显示“打开”对话框。 |
2 | 显示“另存为”对话框。 |
3 | 显示“颜色”对话框。 |
4 | 显示“字体”对话框。 |
5 | 显示“打印”对话框。 |
6 | 运行 WINHLP32.EXE。 |
--------------------------------------------------------------------------------------------------------------------------------------