Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VBNET
Expertise: Intermediate
Jan 19, 2002



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Display a directory tree

Thanks to the GetDirectories and GetFiles methods of the System.IO.Directory class, you need very little code to iterate over all the directories and files of a directory tree. For example, the following code snippet prints the structure of a directory tree and (optionally) the name of files in each directory:

' Assumes the following imports:
' Imports System.IO

Sub PrintDirTree(ByVal dir As String, ByVal showFiles As Boolean, _
    Optional ByVal level As Integer = 0)
    Dim subdir As String
    Dim fname As String 

    ' Display the name of this directory with correct indentation.
    Console.WriteLine(New String("-"c, level * 2) & dir)

        ' Display all files in this directory, with correct indentation.
        If showFiles Then
            For Each fname In Directory.GetFiles(dir)
                Console.WriteLine(New String(" "c, level * 2 + 2) & fname)
        End If
        ' A recursive call for all the subdirectories in this directory.
        For Each subdir In Directory.GetDirectories(dir)
            PrintDirTree(subdir, showFiles, level + 1)
        ' Do nothing if any error (presumably "Drive not ready").
    End Try
End Sub
You can pass a directory name to the PrintDirTree procedure, or print the directory tree of all the drives in your system, by using this code:

Dim rootDir As String
For Each rootDir In Directory.GetLogicalDrives
    PrintDirTree(rootDir, True)
Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date