| 
                  | Title | Make the directories in a complete path | 
|---|
 | Keywords | directory, path | 
|---|
 | Categories | Files and Directories | 
|---|
 | 
              
              | 
 | 
              | Use Split to break the path apart at the \ symbols. Loop through the pieces of the path, creating the subdirectories that don't already exist from the directory root down. | 
              
              | 
 | 
              
                | ' Create the complete directory path.
Private Sub MakePath(ByVal path As String)
Dim directories As Variant
Dim i As Integer
Dim new_dir As String
Dim dir_path As String
    ' Break the path into directories.
    directories = Split(path, "\")
    ' Build the subdirectories.
    For i = LBound(directories) To UBound(directories)
        ' Get the next directory in the path.
        new_dir = directories(i)
        ' Make sure the entry is non-empty.
        If Len(new_dir) > 0 Then
            ' Add the new directory to the path.
            dir_path = dir_path & new_dir & "\"
            ' Make sure we don't just have a drive
            ' specification.
            If Right$(new_dir, 1) <> ":" Then
                ' See if the directory already exists.
                If Dir$(dir_path, vbDirectory) = "" Then
                    ' The directory doesn't exist.
                    ' Make it.
                    MkDir dir_path
                End If
            End If
        End If
    Next i
End Sub | 
              
              | 
 | 
              | Bill Hileman found a discussion group posting by ObiWan with this advice: 
 
Add this declaration to a module:
               | 
              
              | 
 | 
              
                | Declare Function MakeTree Lib "imagehlp.dll" Alias _
    "MakeSureDirectoryPathExists" (ByVal lpszPath As _
    String) As Long | 
              
              | 
 | 
              | This routine ensures that the entire directory tree exists in one function call. | 
              
              
              
              |  | 
              |   | 
              |  |