怎样才能设置为选择多个文件?

解决方案 »

  1.   

    选择多个文件是:
    CommonDialog1.Flags = CommonDialog1.Flags OR cdlOFNAllowMultiselect
      

  2.   

    Const OFN_ALLOWMULTISELECT = &H200&
        Const OFN_HIDEREADONLY = &H4
        Const OFN_LONGNAMES = &H200000
        Const OFN_EXPLORER = &H80000
    Dlg.Flags = OFN_ALLOWMULTISELECT Or OFN_HIDEREADONLY Or OFN_LONGNAMES Or OFN_EXPLORER
      

  3.   

    Const OFN_ALLOWMULTISELECT = &H200&
        Const OFN_HIDEREADONLY = &H4
        Const OFN_LONGNAMES = &H200000
        Const OFN_EXPLORER = &H80000
    Dlg.Flags = OFN_ALLOWMULTISELECT Or OFN_HIDEREADONLY Or OFN_LONGNAMES Or OFN_EXPLORER可以选择多个,但怎样知道到底选了什么文件呢?Dlg.FileName得到的只是选择的目录而已,
      

  4.   

    '下面的函数得到所选的多个文件名(包括路径),每个文件名以vbcrlf分开
    '这下满意了吧!!!!!!!!!!!
    Private Function GetFileName() As String
        Dim i As Integer
        Dim fileNames() As String
        Dim wStr As String
        Const OFN_ALLOWMULTISELECT = &H200&
        Const OFN_HIDEREADONLY = &H4
        Const OFN_LONGNAMES = &H200000
        Const OFN_EXPLORER = &H80000
      
        Dlg.FileName = ""
        Dlg.Filter = "All Files|*.*"
        'Dlg.Filter = "*.txt|*.txt"
        Dlg.Flags = OFN_ALLOWMULTISELECT Or OFN_HIDEREADONLY Or OFN_LONGNAMES Or OFN_EXPLORER
        Dlg.Action = 1
      
        Dlg.FileName = Dlg.FileName
      
        If Len(Dlg.FileName) > 0 Then
            fileNames = Split(Dlg.FileName, Chr(0))
            wStr = ""
            If UBound(fileNames) = 0 Then
                GetFileName = fileNames(0)
            Else
                For i = 1 To UBound(fileNames)
                    wStr = wStr & vbCrLf & fileNames(0) & "\" & fileNames(i)
                Next
                GetFileName = Right(wStr, Len(wStr) - 2)
                
            End If
        Else
            GetFileName = ""
            
        End If
        
    End Function