MkDir (nom)

Résolu
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 - 19 sept. 2008 à 21:03
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 - 22 sept. 2008 à 08:04
Bonjour ,
si nom = "e:test1\datafit\dbr"
pourquoi MKDir ne fonctionne pas y a t-il une autre solution pour créer le repertoire \datafit\dbr directement
sans devoir créer en 1 test1 puis datafit puis dbr avec If Dir(nom, vbDirectory) = "" Then MkDir (nom)
Merci

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 sept. 2008 à 21:16
MkDir ne sait pas créer une arborescence complète, il ne sais créer qu'un sous-réertoir dans un répertoire.

Pour créer une arborescence avec MkDir, il te faudra créer un à un chacun des répertoires.

Sinon tu peux utiliser l'api windows MakeSureDirectoryPathExist

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 1
19 sept. 2008 à 21:19
Ok merci
j'ai trouvé une source qui le fait

Bye
0
cs_keegan Messages postés 16 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 15 août 2009
21 sept. 2008 à 22:39
Bonjour,

Vous avez de la chance d'avoir trouvé!

Vous nous en faites profiter ?

Merci.
0
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 1
22 sept. 2008 à 08:04
Bonjour Voici le code que j'ai trouvé sur codesource
Public Function deldir(chemin As String) As Boolean
traitement:
deldir = False                                                       'indicateur de fonction
myname = Dir(chemin & "\*.*", vbDirectory)          'type de fichier rencontré
Do While myname <> ""
    If myname <> "." And myname <> ".." Then
        If (GetAttr(chemin & "" & myname) And vbDirectory) = vbDirectory Then
            result = deldir(chemin & "" & myname)
            If result = False Then
            Exit Function
            End If
            GoTo traitement
        Else
            Kill chemin & "" & myname              'efface le fichier
        End If
    End If
    myname = Dir
Loop
RmDir chemin                                        'efface le répertoire
deldir = True                                         'sortie de la fonction
End Function

'# 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
0
Rejoignez-nous