|  |  | 
              
              | 
                  | Title | Search a directory hierarhcy and list the files' names, creation dates, and sizes by using the File System Object | 
|---|
 | Description | This example shows how to search a directory hierarhcy and list the files' names, creation dates, and sizes by using the File System Object in Visual Basic 6. | 
|---|
 | Keywords | directory hierarhcy, file names, File System Object, FSO, creation date, FileSystemObject | 
|---|
 | Categories | Files and Directories, Controls | 
|---|
 |  | 
 |  | When the user clicks the Search button, the program clears its TreeView control. It creates a FileSystemObject and gets the target folder. It creates a TreeView node for that folder and then calls subroutine ListFileInfo. 
Subroutine ListFileInfo loops over a folder's subfolders, recursively calls itself to describe them. It then loops over the folder's files, adding them to the TreeView.
               |  | 
 |  
                | Private Sub cmdSearch_Click()
Dim fso As FileSystemObject
Dim target_folder As Folder
Dim target_node As Node
Dim txt As String
    Screen.MousePointer = vbHourglass
    trvResults.Visible = False
    DoEvents
    ' Clear the TreeView.
    trvResults.Nodes.Clear
    ' Get the starting folder.
    Set fso = New FileSystemObject
    Set target_folder = fso.GetFolder(txtDir.Text)
    ' Add the starting folder to the TreeView.
    txt = _
        target_folder.ParentFolder & "\" & _
            target_folder.Name & _
        " (" & target_folder.DateCreated & ", " & _
        FormatBytes(target_folder.Size) & ")"
    Set target_node = trvResults.Nodes.Add(, , , txt)
    ' Search.
    ListFileInfo trvResults, target_node, target_folder
    trvResults.Visible = True
    Screen.MousePointer = vbDefault
End Sub
' List the information about this directory under
' the TreeView node.
Private Sub ListFileInfo(ByVal trv As TreeView, ByVal _
    parent_node As Node, ByVal parent_folder As Folder)
Dim txt As String
Dim child_folder As Folder
Dim child_file As File
Dim child_node As Node
    ' Search subdirectories.
    For Each child_folder In parent_folder.SubFolders
        txt = _
            child_folder.Name & _
            " (" & child_folder.DateCreated & ", " & _
            FormatBytes(child_folder.Size) & ")"
        Set child_node = trv.Nodes.Add( _
            parent_node, tvwChild, , txt)
        ListFileInfo trv, child_node, child_folder
    Next child_folder
    ' List the files.
    For Each child_file In parent_folder.Files
        txt = _
            child_file.Name & _
            " (" & child_file.DateCreated & ", " & _
            FormatBytes(child_file.Size) & ")"
        trv.Nodes.Add parent_node, tvwChild, , txt
    Next child_file
End Sub |  |  |  |   |  |  |  |  |