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 : 16940
Catégorie(s) : Fichier / Disque
Langages dispo pour ce code :
- VB 2005
- VB6, VBA
- Delphi 5
- VB6, VBA



Langage : VB 2005
Date ajout : 10/11/2006
Posté par Drikce06 [Liste]
Sub ListerSousRepertoire(ByVal NomDuRepertoireRacine As String)

'Création d'un fichier Analyse.txt pour énumérer les sous-répertoires trouvés
Dim sw As StreamWriter = File.CreateText("C:\Analyse.txt")

'Ecrit au début du fichier le répertoire racine parcouru et la date
sw.WriteLine("Répertoire racine analysé : " & NomDuRepertoireRacine) 
sw.WriteLine(DateTime.Now)

Dim list As System.Collections.ObjectModel.ReadOnlyCollection(Of String)

'Parcours tous les fichiers du répertoire
list = My.Computer.FileSystem.GetDirectories(NomDuRepertoireRacine, FileIO.SearchOption.SearchTopLevelOnly) 
'FileIO.SearchOption.SearchAllSubDirectories permet également de parcourir les sous_sous_répertoires


Dim path As String

For Each path In list

'écrit les sous-répertoires du répertoire racine dans un fichier text

sw.WriteLine(path)


Next


'fermeture du fichier texte

sw.Close()


End Sub

Langage : VB6 , VBA
Date ajout : 30/11/2006
Posté par jrivet [Liste]

'Exemple d'utilisation: Private Sub Form_Load()      Dim NumFile As Integer      NumFile = FreeFile      'OUvre le fichier d'analyses en Append     Open "C:\Analyses.txt" For Append As NumFile      'Appelle la procédure de listage     Call ListerSousRepertoire("C:\Julien\", CreateObject("Scripting.FileSystemObject"), NumFile)      'Ferme le fichier     Close NumFile  End Sub  '-------------------------------------------------------------------------------------- ' Procedure : ListerSousRepertoire ' Purpose   : Lister un repertoire complet (attention récursive) '--------------------------------------------------------------------------------------- ' Public Sub ListerSousRepertoire(ByVal NomRepertoire As StringByRef Fso, ByVal NumFile As IntegerDim SubFol, Fi, Fol      'Récupere le repertoire     Set Fol = Fso.GetFolder(NomRepertoire)      'Ecrit le nom dans le fichier     Print #NumFile, Fol.Path      'Pour chaque Fichiers du repertoire     For Each Fi In Fol.Files          'écrit le nom dans le fichier         Print #NumFile, Fi.Path      Next      'Pour chaque sous répertoire     For Each SubFol In Fol.SubFolders          'appel la meme procédure pour liste le contenu         Call ListerSousRepertoire(SubFol.Path, Fso, NumFile)      Next      'Destruction des object     Set Fol = Nothing      Set Fi = Nothing      Set SubFol = Nothing  End Sub 

Langage : Delphi 5
Date ajout : 12/02/2009
Posté par cirec [Liste]
{ Liste les dossiers avec ou sans sous-dossiers  
  dans un TStrings avec ou sans le chemin complet. 
  Retourne également  les dossiers cachés et systèmes 
  ansi que ce qui ont une  extension} 
Procedure  FindDirs(Directory: String; aList :  TStrings; 
                   Const  SubFolders : Boolean = True; //cherche les  sous-dossiers 
                   Const  FullPathName : Boolean = True);//retourne le  chemin complet 
Var SearchRec :  TSearchRec; 
Begin 
  If Not  Assigned(aList) Then 
    Exit;  
  If Directory[Length(Directory)] <>  '\' Then Directory  := Directory + '\'; 
  If  FindFirst(Directory + '*.*', faDirectory  Or faSysFile Or  faHidden, SearchRec) = 0 Then 
    Begin 
      aList.BeginUpdate;  
      Repeat 
        If  (SearchRec.Attr And faDirectory =  faDirectory) And (SearchRec.Name[1] 
          <> '.')  Then 
          Begin 
            If  FullPathName Then  
              aList.Add(Directory + SearchRec.Name)  
            Else  
              aList.Add(SearchRec.Name); 
            If SubFolders Then  
              FindDirs(Directory + SearchRec.Name, aList,  SubFolders, FullPathName); // recherche  récusive 
          End 
      Until  FindNext(SearchRec) <> 0;  
      FindClose(SearchRec); 
      aList.EndUpdate; 
    End; 
End;  
{ Exemple d'utilisation } 
Procedure TForm1.Button1Click(Sender: TObject);  
Begin 
  {comme  la méthode peut mettre du temps en fonction du répertoire 
   et des  paramètres on affiche le sablier} 
  Screen.Cursor := crHourGlass;  
  ListBox1.Clear; 
  {Liste tous les dossiers  & sous-dossier et retourne le chemin complet trouvé}  
  FindDirs('c:\Windows', ListBox1.Items);  
  {autres exemples} 
  {Liste tous les dossiers sans sous-dossier et retourne le  chemin complet trouvé} 
  //FindDirs('c:\',  ListBox1.Items, False, True); 
  {Liste  tous les dossiers sans sous-dossier et retourne le nom du dossier  trouvé} 
  //FindDirs('c:\program files',  ListBox1.Items, False, false); 
  Screen.Cursor := crDefault;  
End; 

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 ...