Mkdir recursif...

Description

Sous ce nom barbare, la réponse à un constat simple...
la fonction MkDir de VB n'est pas récursive. Entendez par là que pour que :

MkDir "C:\Test\Data" créé effectivement le repertoire Data, il faut que le repertoire Test existe lui même...

La fonction que je vous propose ici fait le même boulot, mais de manière récursive. Toute l'arborescence sera créée, si besoin,
ou renverra False, si ce repertoire ne peut etre créé/n'existe pas en sortant de la fonction...

Source / Exemple :


'# Permet de tester l'existence d'un dossier...
Private Function FolderExists(ByRef vsPathFolder As String) As Boolean
    On Error Resume Next
    FolderExists = CBool(GetAttr(vsPathFolder) And vbDirectory)
End Function

Private Function MkDir(ByRef vsPathFolder As String) As Boolean
Dim i As Long
    '# Si le dossier n'existe pas...
    If Not FolderExists(vsPathFolder) Then
        '# On va procéder a un découpage : on récupère le dossier parent
        i = InStrRev(vsPathFolder, "\")
        If i = 0 Then
            '# On est surement arrivés au nom du lecteur, et il ne semble pas être présent
            MkDir = False
        ElseIf MkDir(Left$(vsPathFolder, i - 1)) Then
            '# Le repertoire parent existe ou a pu être créé...
            FileSystem.MkDir vsPathFolder
            MkDir = True
        Else
            '# Le repertoire parent n'a pu être créé
            MkDir = False
        End If
    Else
        '# Le repertoire existe bien
        MkDir = True
    End If
End Function

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.