Page 1 of 1

List Files by User-Defined Extensions Rate Topic: -----

#1 raziel_  Icon User is offline

  • Like a lollipop
  • member icon

Reputation: 463
  • View blog
  • Posts: 4,255
  • Joined: 25-March 09

Posted 22 February 2010 - 09:02 AM

So let's begin. No additional references need to be added; just add a listbox and a command button

First how to search in a directory for a specific file extension :

Private Sub ListFiles(strPath As String, ByVal strExtension As String)
'Used for finding files and send them to a listbox named List1

    Dim File As String 'Used to store the files that are found
    
    'Simple check if the path is correct it hase to end with "\" else is added
    If Right$(strPath, 1) <> "\" Then strPath = strPath & "\"
    
        
    'find the files with the extension in the current path
    File = Dir(strPath & strExtension)
    'list all the file till dir return empty string
    Do While Len(File)
        List1.AddItem File  'add the file to the listbox
        File = Dir          'send the next file to variable File
    Loop
End Sub



What this code does is first check if the path is correct: if there is no "\" at the end of the path, we add one. Then we pass the folder path and the extension to the Dir() function, which returns the files found matching that extension.

Here is how to find files matching multiple extensions:

Private Function search_filex(ParamArray vntSearch() As Variant)
'using the ParamArray we check for each of the elements for files

    Dim UB, LB As Long ' used for the Upper Bound(UB) and Low Bound(LB) of the array
    Dim i As Integer   'counter
    LB = LBound(vntSearch)  'Find the Upper Bound
    UB = UBound(vntSearch)  'Find Lower Bound
    For i = LB To UB    'list all elements of the array
        Call ListFiles("C:\Test_Dir\", CStr(vntSearch(i))) 'send the element to the function to find the file
    Next i
End Function



Using Parameter Arrays we can send as many extensions as we want (the link contains the description of Parameter Arrays in VB6).
We send each element of the array to the function we just wrote to search for the files.

So here is the test button code:

Private Sub Command1_Click()
'test command button click event
'send 3 extensions to be listed
    search_filex "*.txt", "*.doc", "*.xml"
End Sub



Here we send 3 extensions, "*.txt", "*.doc" and "*.xml"; the comma is used as the
separator for the elements of the Parameter Arrays.

Attached File(s)


This post has been edited by NoBrain: 24 February 2010 - 08:19 AM


Is This A Good Question/Topic? 1
  • +

Page 1 of 1