Les Snippets

Connexion

Lister les sous-répertoires (et/ou sous-sous-répertoires) d'un répertoire racine

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 10/11/2006 11:16:04 et initié par Drikce06 [Liste]
Vue : 16901
Catégorie(s) : Fichier / Disque
Langages dispo pour ce code :
- VB 2005
- VB6, VBA
- Delphi 5
- VB6, VBA
- Voir tous les langages pour ce code snippet



Langage : VB6 , VBA
Date ajout : 18/03/2009
Posté par Charles Racaud [Liste]
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const INVALID_HANDLE_VALUE = -1

Private Type WIN32_FIND_DATAW
  dwFileAttributes As Long
  ftCreationTime As Currency
  ftLastAccessTime As Currency
  ftLastWriteTime As Currency
  nFileSizeHigh As Long
  nFileSizeLow As Long
  dwReserved0 As Long
  dwReserved1 As Long
  cFileName(519As Byte
  cAlternate(27As Byte
End Type

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileW" (ByVal lpFileName As Long, lpFindFileData As WIN32_FIND_DATAW) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileW" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATAW) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As LongAs Long

Private Function GetAllDirectory(ByVal DirectoryName As StringByRef Directories() As StringAs Long
  Dim fData As WIN32_FIND_DATAW
  Dim hSearch As Long
  Dim CurrentDirectory As Long
  Dim DirectoriesCount As Long
  Dim Directory As String

  ' Ajout du premier répertoire
  ReDim Directories(0)
  Directories(0= DirectoryName
  If Not VBA.Right$(Directories(0), 1= "\" Then Directories(0= Directories(0& "\"
  DirectoriesCount = 1

  While CurrentDirectory < DirectoriesCount ' Pour chaque répertoire trouvé
    hSearch = FindFirstFile(StrPtr(Directories(CurrentDirectory) & "*"), fData) ' On liste ses sous-répertoires
    If Not hSearch = INVALID_HANDLE_VALUE Then
      Do
        If (fData.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY Then
          Directory = fData.cFileName
          Directory = VBA.Left$(Directory, InStr(Directory, Chr$(0)) - 1)
          If Not Directory = "." And Not Directory = ".." Then
            ReDim Preserve Directories(DirectoriesCount)
            Directories(DirectoriesCount) = Directories(CurrentDirectory) & Directory & "\"
            DirectoriesCount = DirectoriesCount + 1
          End If
        End If
      Loop While FindNextFile(hSearch, fData)
      Call FindClose(hSearch)
    End If
    CurrentDirectory = CurrentDirectory + 1 ' Passe au répertoire suivant pour le listing
  Wend

  GetAllDirectory = DirectoriesCount
End Function

Remarque :
Avec la gestion Unicode.

Snippets en rapport avec : Répertoire, Dossier, Sous-dossier, Lister, Sous-répertoire



Codes sources en rapport avec : Répertoire, Dossier, Sous-dossier, Lister, Sous-répertoire

{Visual Basic, VB6, VB.NET, VB 2005} FOLDER HELPER - DOSSIERS SPECIAUX, MANIPULATION DE DOSSIERS, ET PLUS... [MODULE DE CLASSE]
voici une classe que j'avais commencé il y a un moment, elle attendait dans son coin... elle deva...

{C / C++ / C++.NET} LISTER LES FICHIERS D'UN REPERTOIRE + FILTRES
Programmé sous Linux. Compatible windows. Liste les fichiers d'un répertoire come indiqué dans le...

{PHP} ENVOI CONTENU D'UN DOSSIER VERS FTP
Un code ma foi assez basique mais qui, je pense, pourra en aider certains. J'ai pu remarqué en fais...

{JAVA / J2EE} DIRECTORYCHOOSER
Bonjour C'est ma première source. J'avais besoin de pouvoir un sélectionneur de répertoire je n'ai ...

{PHP} FONCTION RÉCURSIVE POUR GÉNÉRER UNE ARBORESCENCE DE FICHIERS AVEC FILTRES
Cette fonction vas générer une arborescence des fichiers & dossiers de manière graphique avec la pos...

{PHP} GÉNÉRATION RÉCURSIVE D'UNE ARBORESCENCE DE RÉPERTOIRES
Je vous présente une petite fonction récursive que j'ai développée pour permettre de générer l'arbor...

{PHP} PARCOURIR UN RÉPERTOIRE ET SES SOUS SOUS SOUS... RÉPERTOIRE ET RETOURNER LES FICHIERS QUI ONT L'EXTENSION VOULUE
Cette fonction va parcourir tous les répertoires et sous répertoires et sous sous répertoires et ......

{Visual Basic, VB6, VB.NET, VB 2005} CLASSE DE GESTION DES FICHIERS/DOSSIERS ==> INFOS (DATES, COPYRIGHT...), LISTING, COPIER, CORBEILLE, BOITES DE DIALOGUE ... LE TOUT PAR APIS
Ce code est une classe qui permet de faire différentes actions sur les fichiers et les dossiers, à s...

{Visual Basic, VB6, VB.NET, VB 2005} PARCOURIR TOUS LES FICHIERS ET SOUS RÉPERTOIRES D'UN RÉPERTOIRE RACINE
Ce code permet de parcourir tous les sous-dossiers et les fichiers dans un répertoire racine, en ten...

{JAVA / J2EE} PROXY HTTP AVEC LE JOURNAL POUR CHAQUE UTILISATEUR
Et voici le code source Proxy HTTP, le projet a été développé avec Netbeans 5.0 et basé sur le code ...