在使用vb 编程,有些时候我们不得不面对需要一次性读取文件夹中某一类型的所有文件,这如何实现咧? 第一种方法是动态加载控件实现文件的读取,代码如下: Private Sub Command1_Click() Dim objDlg //shell 对象 Dim objF //文件选择对话框对象 Dim DstPath //文件夹路径 Dim I //临时变量 Set objDlg = CreateObject("Shell.Application") //加载shell 对象 Set objF = objDlg.BrowseForFolder(&H0, "选择存放位置:", &H1) //打开一个浏览文件夹 If InStr(1, TypeName(objF), "Folder", vbTextCompare) > 0 Then //路径有效则记录路径 DstPath = objF.self.Path Else MsgBox "目录无效!" End If BrowseForFolder 的作用就是创建上图所示的文件夹选择对话框,其参数表为: object.BrowseForFolder Hwnd, Title, Options, [RootFolder] object 用来创建对话框的对象 Hwnd 父窗口的句柄 Title 对话框的标题 Options 一个long 类型的值主要的作用是控制对话框显示的格式,具体取值可以参看MSDN 中的“BROWSEINFO” RootFolder 可选项,对话框打开时的位置 2 Dim flist As FileListBox //控件类型FileListBox Dim lbox As ListBox //控件类型ListBox ‘通过Me 对象以及Controls 集合动态的加载两个控件 Set flist = Me.Controls.Add("VB.FilelistBox", "flb", Me) Set lbox = Me.Controls.Add(“VB.ListBox”, “lb”, Me) With objF ' File1 .Pattern = "*.jpg;*.bmp;*.gif" //需要筛选出来的文件类型 .Path = DstPath //文件夹的路径 For i = 0 To .ListCount - 1 //遍历所有指定类型的文件 List1.AddItem DstPath & "\" & .List(i) //假设listbox的名称为list1 Next End With End Sub 这里需要说明一下: FileListBox控件可以通过.Pattern 中指定的文件后缀名,以及.Path 指定的文件夹路径,筛选出.Path 路径下所有满足条件的文件类型,将文件名全部记录在.List 数组中,我们通过一个ListBox控件,将.List 数组中的所有文件全部取出来,通过DstPath & "\" & .List(i),记录下文件的全路径 有些时候,我们需要将弹出来的对话框设置成模态的对话框以限制用户的一些操作,但是一般使用BrowseForFolder 得到的都是非模态的对话框,那么有没有实现呢?肯定是可以的,一般我们是用BrowseForFolder 的时...