Get all Matching Files in a Directory Structure

Get all Matching Files in a Directory Structure

Because this code doesn’t use an API, you can easily port it between 16- and 32- bit applications. TheDirWalk procedure lets you search an entire directory structure starting at whatever you specify as theargument:

 ReDim sArray(0) As StringCall DirWalk("OLE*.DLL", "C:", sArray)

The procedure accepts wildcards in the first argument, which is the search pattern for file names. You caneven specify multiple search patterns using the semicolon as a separator, as in “OLE*.DLL; *.TLB.” Thesecond argument is the location of where to start, and the third argument is an array of strings.The procedure recursively goes to the deepest level in the directory structure and gets all the matching filenames with full path in the array sArray. This array is ReDimed from the function and has as many membersas matches found.To use DirWalk, put two extra controls, FileListBox and DirListBox, on the form. This procedure assumesit’s on a form on which there are two controls: FileListBox with name File1, and DirListBox with name Dir1.Keep the controls invisible to improve the speed of the search. Putting these additional controls on a formdoesn’t cause any overhead because they’re part of a basic library of controls for VB:

 Sub DirWalk(ByVal sPattern As String, _        ByVal CurrDir As String, sFound() _        As String)Dim i As IntegerDim sCurrPath As StringDim sFile As StringDim ii As IntegerDim iFiles As IntegerDim iLen As IntegerIf Right$(CurrDir, 1) <> "" Then        Dir1.Path = CurrDir & ""Else        Dir1.Path = CurrDirEnd IfFor i = 0 To Dir1.ListCount        If Dir1.List(i) <> "" Then                DoEvents                Call DirWalk(sPattern, _                        Dir1.List(i), sFound())        Else                If Right$(Dir1.Path, 1) = "" _                        Then                        sCurrPath = Left(Dir1.Path, _                                Len(Dir1.Path) - 1)                Else                        sCurrPath = Dir1.Path                End If                File1.Path = sCurrPath                File1.Pattern = sPattern                If File1.ListCount > 0 Then                         'matching files found in the                         'directory                        For ii = 0 To File1._                                ListCount - 1                                ReDim Preserve _                                        sFound(UBound(sFound) _                                        + 1)                                sFound(UBound(sFound) - _                                        1) = sCurrPath & _                                        "" & File1.List(ii)                        Next ii                End If                iLen = Len(Dir1.Path)                Do While Mid(Dir1.Path, iLen, _                        1) <> ""                        iLen = iLen - 1                Loop                Dir1.Path = Mid(Dir1.Path, 1, _                        iLen)        End IfNext iEnd Sub
Share the Post:
data observability

Data Observability Explained

Data is the lifeblood of any successful business, as it is the driving force behind critical decision-making, insight generation, and strategic development. However, due to its intricate nature, ensuring the

Heading photo, Metadata.

What is Metadata?

What is metadata? Well, It’s an odd concept to wrap your head around. Metadata is essentially the secondary layer of data that tracks details about the “regular” data. The regular

XDR solutions

The Benefits of Using XDR Solutions

Cybercriminals constantly adapt their strategies, developing newer, more powerful, and intelligent ways to attack your network. Since security professionals must innovate as well, more conventional endpoint detection solutions have evolved