Recently,
Microsoft Office Pro 2007, I wrote an application to manage files between directories and needed a function to make sure that the directory structure was the same between the source and destination files. VBA provides a function called MkDir which is used to create a directory, but it requires that the parent directory already exists. Here's a function called MkTree that will walk a path and create all of the directories in the tree for a given file/directory path.
' --------------------------------------------------------------------------
' Function: MkTree
' Purpose : Create directories for a given file name
' Notes : MkTree "c:\a\b\c\file.txt" would create directories for c:\a\b\c
' MkTree "c:\a\b\c\" would create c:\a\b\c
' MkTree "c:\a\b\c" would create c:\a\b
' --------------------------------------------------------------------------
Public Sub MkTree(ByVal strFile As String)
' walk the file and make sure the paths exist
Dim strRoot As String
Dim strPath As String
Dim pos As Integer
' get the root
If (InStr(strFile, ":\") = 2) Then
strRoot = Left(strFile,
Office 2010 Professional Plus, InStr(strFile, ":\") + 1)
ElseIf (InStr(strFile, "\\") = 1) Then
strRoot = Left(strFile, InStr(InStr(strFile, "\\") + 2, strFile,
Office 2010 Pro, "\"))
Else
MsgBox "Invalid Root Directory", vbExclamation
Exit Sub
End If
pos = InStr(Len(strRoot) + 1,
Office 2010, strFile, "\")
While (pos > 0)
strPath = Left(strFile,
Office Home And Stude/nt 2010, pos)
' Create the directory
On Error Resume Next
MkDir strPath
Debug.Assert Err = 0 Or Err = 75
On Error GoTo 0
pos = InStr(pos + 1, strFile, "\")
Wend
End Sub <div