Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRÉATION D'UN ARBORESSANCE


Information sur la source

Catégorie :Fichier / Disque Niveau : Débutant Date de création : 27/11/2002 Date de mise à jour : 27/11/2002 15:51:39 Vu : 1 698

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Comme le titre l'indique ce petit module va vous permettre de créer un dossier sans être oubliger de créer les dossiers inexistant avant le votre.

 

Source

  • Option Explicit
  • Public Function Verification_Chemin(strChemin As String) As Boolean
  • Verification_Chemin = False
  • If Trim(Dir(strChemin, vbDirectory)) <> "" Then
  • Verification_Chemin = True
  • End If
  • End Function
  • Public Sub Creation_Dossier(strChemin As String)
  • Dim CheminPartiel As String
  • Dim nbCarDebut As Integer
  • Dim nbCar As Integer
  • nbCarDebut = 4
  • Retour1:
  • nbCar = InStr(nbCarDebut, strChemin, "\")
  • If nbCar <> 0 Then
  • CheminPartiel = Left(strChemin, nbCar - 1)
  • If Verification_Chemin(CheminPartiel) = False Then
  • MkDir CheminPartiel
  • nbCarDebut = nbCar + 1
  • GoTo Retour1
  • Else
  • nbCarDebut = nbCar + 1
  • GoTo Retour1
  • End If
  • Else
  • MkDir strChemin
  • End If
  • End Sub
Option Explicit

Public Function Verification_Chemin(strChemin As String) As Boolean

    Verification_Chemin = False
    
    If Trim(Dir(strChemin, vbDirectory)) <> "" Then
        Verification_Chemin = True
    End If
    
End Function

Public Sub Creation_Dossier(strChemin As String)

    Dim CheminPartiel As String
    Dim nbCarDebut As Integer
    Dim nbCar As Integer
    
    nbCarDebut = 4
Retour1:
    nbCar = InStr(nbCarDebut, strChemin, "\")
    If nbCar <> 0 Then
        CheminPartiel = Left(strChemin, nbCar - 1)
        If Verification_Chemin(CheminPartiel) = False Then
            MkDir CheminPartiel
            nbCarDebut = nbCar + 1
            GoTo Retour1
            Else
            nbCarDebut = nbCar + 1
            GoTo Retour1
        End If
        Else
        MkDir strChemin
    End If
    
End Sub

Commentaires et avis

signaler à un administrateur
Commentaire de sub-zero le 27/11/2002 17:05:31

oui ms l'optimisation c pas ca!
*Verification_Chemin=Trim$(Dir$(strChemin, vbDirectory)&lt;&gt;vbnullstring pour ta première fonction
*supprime les goto ds la 2nde et fait une boucle

voila @+

signaler à un administrateur
Commentaire de zefri le 27/11/2002 20:54:09

Référence plutôt Microsoft Scripting Runtime dans ton projet, et puis alors le code se simplifie de façon étonnante :

Private Sub Check_Directory(Path As String)
On Error GoTo Error
Dim oFso As New FileSystemObject
Dim vItem As Variant
Dim FullPath As String

    If Not oFso.FolderExists(Path) Then
        For Each vItem In Split(Path, "")
            FullPath = Replace(FullPath & vItem & "", "\", "")
            If Not oFso.FolderExists(FullPath) Then
                oFso.CreateFolder FullPath
            End If
        Next
    End If

Exit Sub

Error:
    MsgBox Err.Description
End Sub

signaler à un administrateur
Commentaire de zefri le 27/11/2002 20:56:02

Oups !
Au lieu de Split(Path, "") il faut lire Split(Path, ""), évidemment...

signaler à un administrateur
Commentaire de zefri le 27/11/2002 21:01:50

Bon, ben ça doit être un bug d'affichage, les backslash disparaissent...
Donc là où on voit un backslash il faut en voire deux, et quand on voit juste "" c'est qu'il y a un backslash entre guillemets.
Milles excuse, je connaissais pas ce bug.
En tout cas le code fonctionne un fois remis les backslash à leur place, je l'ai testé !

signaler à un administrateur
Commentaire de FaciCAD le 28/11/2002 22:52:22

Merci pour c'est info, c'est très apprécié.

signaler à un administrateur
Commentaire de jmc70 le 12/01/2006 19:42:37

Le code de Zefri fonctionne bien si le chemin commence par une lettre de lecteur mais ce n'est pas le cas pour un chemin unicode du genre "\\Edmini\Share\" (disque dur distant par exemple - bon, je sais, on peut se connecter auparavant à un lecteur réseau pour déclarer une lettre de volume, mais j'aimerais faire sans)
Si quelqu'un a une solution...

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.