VB如何打开多个文件
VB怎么打开多个文件?使用CommonDialog控件,可以实现打开文件的功能。但只能是实现打开一个文件。如果需要打开多个文件,可以用增加打开多个文件函数的方法来实现。
新建一个VB工程,在窗口中放入List控件、按钮和CommonDialog控件。如下图所示:
在代码编辑窗口,写入如下代码程序:
Private Sub Command1_Click() Dim DlgInfo As DlgFileInfo Dim I As Integer On Error GoTo ErrHandle '清除List1中的项 List1.Clear '选择文件 With CommonDialog1 .CancelError = True .MaxFileSize = 32767 '被打开的文件名尺寸设置为最大,即32K .Flags = cdlOFNHideReadOnly Or cdlOFNAllowMultiselect Or cdlOFNExplorer .DialogTitle = "选择文件" .Filter = "所有类型的文件(*.*)|*.*" .ShowOpen DlgInfo = GetDlgFileInfo(.FileName) End With For I = 1 To DlgInfo.iCount List1.AddItem DlgInfo.sPath & DlgInfo.sFile(I) 'List1.AddItem DlgInfo.sFile(I) Next I Exit Sub ErrHandle: ' 按了“取消”按钮 End Sub
新建一个模块,写入如下代码程序:
Option Explicit Type DlgFileInfo iCount As Long sPath As String sFile() As String End Type '功能: 返回CommonDialog所选择的文件数量、路径和文件名 '参数说明: strFileName为CommonDialog的Filename属性 '函数类型: DlgFileInfo。这是一个自定义类型,其中iCount返回所选择文件的个数,sPath返回所选择文件的路径,sFile()返回所选择文件的文件名(不包括路径) '注意事项: 该函数应在CommonDialog.ShowOpen方法后立即使用,以免当前路径被更改 Public Function GetDlgFileInfo(strFilename As String) As DlgFileInfo Dim sPath, tmpStr As String Dim sFile() As String Dim iCount As Integer Dim I As Integer On Error GoTo ErrHandle sPath = CurDir() tmpStr = Right$(strFilename, Len(strFilename) - Len(sPath)) '将文件名与路径分离 If Left$(tmpStr, 1) = Chr$(0) Then '选择了多个文件(分离后第一个字符为Chr$(0)) For I = 1 To Len(tmpStr) If Mid$(tmpStr, I, 1) = Chr$(0) Then iCount = iCount + 1 ReDim Preserve sFile(iCount) Else sFile(iCount) = sFile(iCount) & Mid$(tmpStr, I, 1) End If Next I Else '只选择了一个文件(注意:根目录下的文件名除去路径后左边没有"\") iCount = 1 ReDim Preserve sFile(iCount) If Left$(tmpStr, 1) = "\" Then tmpStr = Right$(tmpStr, Len(tmpStr) - 1) sFile(iCount) = tmpStr End If GetDlgFileInfo.iCount = iCount ReDim GetDlgFileInfo.sFile(iCount) If Right$(sPath, 1) <> "\" Then sPath = sPath & "\" GetDlgFileInfo.sPath = sPath For I = 1 To iCount GetDlgFileInfo.sFile(I) = sFile(I) Next I Exit Function ErrHandle: MsgBox "GetDlgFileInfo函数执行错误!", vbOKOnly + vbCritical, "自定义函数错误" End Function
点击运行按钮,效果如下图所示:
单击“打开文件”按钮,打开一个文件夹,选中多个文件,如下图所示:
点击“打开”按钮后,效果如下图所示:
可以看到,一次打开了多个文件。