MkDir (nom) [Résolu]

Messages postés
675
Date d'inscription
samedi 31 mai 2003
Dernière intervention
26 mai 2013
- - Dernière réponse : petiflamand
Messages postés
675
Date d'inscription
samedi 31 mai 2003
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
3
Merci
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

Merci cs_casy 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_casy
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Dernière intervention
26 mai 2013
0
Merci
Ok merci
j'ai trouvé une source qui le fait

Bye
Commenter la réponse de petiflamand
Messages postés
16
Date d'inscription
vendredi 27 décembre 2002
Dernière intervention
15 août 2009
0
Merci
Bonjour,

Vous avez de la chance d'avoir trouvé!

Vous nous en faites profiter ?

Merci.
Commenter la réponse de cs_keegan
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Dernière intervention
26 mai 2013
0
Merci
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
Commenter la réponse de petiflamand

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.