Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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)

    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
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)
Next
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap