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)
Try
' 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)
Next
End If
' A recursive call for all the subdirectories in this directory.
For Each subdir In Directory.GetDirectories(dir)
PrintDirTree(subdir, showFiles, level + 1)
Next
Catch
' Do nothing if any error (presumably "Drive not ready").
End Try
End Sub