Suppose you need to create a tree of directories, all at once, in code. For example, you could create the tree C:1stDir2ndDir3rdDir4thDir with one call simply by feeding that path, as a string, into this procedure:
Public Function MkDirs(ByVal PathIn As String) _ As Boolean Dim nPos As Long MkDirs = True 'assume success If Right$(PathIn, 1) <>"" Then PathIn = _ PathIn + "" nPos = InStr(1, PathIn, "") Do While nPos > 0 If Dir$(Left$(PathIn, nPos), _ vbDirectory) = "" Then On Error GoTo Failed MkDir Left$(PathIn, nPos) On Error GoTo 0 End If nPos = InStr(nPos + 1, PathIn, "") Loop Exit FunctionFailed: MkDirs = FalseEnd Function
If any part of the path already exists, the routine creates only the new part. This routine works on strings representing local and mapped drives-those with a letter, colon, and backslash at the beginning. If the drive designation is left out, the directories are created starting at the default directory on the current drive.