以下是文件夹中的文件:
ABC.ETX
ABC.ETX_INF
ABC.ETX_EKO
DEF.ETX
DEF.ETX_INF
DEF.ETX_EKO我只想找*.ETX的文件
用dir("*.etx")竟然将.etx_inf和.etx_eko的文件也搜索出来了

解决方案 »

  1.   


    Sub SearchFile(FolderName As String)
      Dim tmpf As String
            Dim FileName     As String, tmp       As String
            FileName = Dir(FolderName & "\*.pat")
            
            Do While Not FileName = ""
                    If FileName <> "." And FileName <> ".." Then
                            tmp = FolderName & "\" & FileName
                            tmpf = FileName
                            If GetAttr(tmp) <> vbDirectory Then
                                    List1.AddItem Left(tmpf, InStrRev(tmpf, ".") - 1)
                            End If
                    End If
                    FileName = Dir
            Loop
    End Sub
    Private Sub Command1_Click()
     SearchFile "d:\code\pat"
    End Sub
      

  2.   

    按上面文件搜索 *.pat的文件
    找出
    abc.pat
    abc.pat_inf
    abc.pat_msk
    之类的也找出来
    其它我只要abc.pat
    其它两个不要
      

  3.   

    试试这个,刚出炉的
    '从菜单“工程”->“引用”->Microsoft Scripting RunTime
    Dim Flder As String
    Private Sub Command1_Click()
        Flder = ""
        Flder = GetFolder
        If Flder = "" Then Exit Sub
        Me.Caption = Flder
        List1.Clear
        Dim FSO As New FileSystemObject
        Dim FL As File
        For Each FL In FSO.GetFolder(Flder).Files
            If ExtName(FL.Name) = "pat" Then
                List1.AddItem FL.Name
            End If
        Next
    End Sub
    Private Function ExtName(ByVal PathName As String) As String
    '得到文件的扩展名
        aa = InStr(1, PathName, ".")
        bb = PathName
        Do While aa >= 0
            bb = Mid(bb, InStr(1, bb, ".") + 1, Len(bb))
            aa = aa - 1
        Loop
        ExtName = bb
    End Function
      

  4.   

    谢谢,除FSO外,我上面的办法有没有办法优化
      

  5.   


       Dim x
       x = Dir("c:\*.txt")
       While x <> ""
         If Len(x) - InStrRev(x, ".") = 3 Then Debug.Print x
         x = Dir
         
       Wend