Nombre de fichiers d'un répertoire

Pour numéroter des classeurs avec un nom de dossier suivi d'un N°, j'aurais besoin de connaître le nombre de fichiers d'un répertoire....

Ci-dessous, deux procédures pour compter l'une le nombre de fichiers d'un dossier et l'autre le nombre de sous-dossiers d'un dossier. Les deux procédures peuvent, en option, examiner également l'ensemble de l'arborescence dépendant du dossier fourni en paramètre.
'compte le nombre de fichiers d'un lecteur
'(complet et assez rapide)

sub test() 'fs    
 Dim Nb&
 'nombre de fichiers à la racine du lecteur C
 NbDeFichiers "C:", Nb&, False
 MsgBox Nb: Nb = 0
 'nombre total de fichiers sur le lecteur C
 NbDeFichiers "C:", Nb&
 MsgBox Nb: Nb = 0
 'nombre de dossiers à la racine du lecteur C
 NbDeDossiers "C:", Nb&, False
 MsgBox Nb: Nb = 0
 'nombre total de dossiers sur le lecteur C
 NbDeDossiers "C:", Nb&
 MsgBox Nb
 end sub
sub NbDeFichiers(LeDossier$, Cpte&, Optional SousDossiers As Boolean = True) 
 Dim fso As Object, Dossier As Object  Dim sousRep As Object    
Set fso = CreateObject("Scripting.FileSystemObject")  
Set Dossier = fso.GetFolder(LeDossier)  
Cpte = Cpte + Dossier.Files.Count 
 'traitement récursif des sous dossiers  
If SousDossiers Then  
 For Each sousRep In Dossier.subFolders
   NbDeFichiers sousRep.Path, Cpte
  Next sousRep
 End If
 Set fso = Nothing
 end sub
sub NbDeDossiers(DossierRacine$, Cpte&, Optional SousDossiers As Boolean = True)  'fs
Dim fso As Object, Dossier As Object  Dim sousRep As Object    
Set fso = CreateObject("Scripting.FileSystemObject")  
Set Dossier = fso.GetFolder(DossierRacine)  
Cpte = Cpte + Dossier.subFolders.Count  
'traitement récursif des sous dossiers  
If SousDossiers Then   
For Each sousRep In Dossier.subFolders
   NbDeDossiers sousRep.Path, Cpte
  Next sousRep
 End If
 Set fso = Nothing
 end sub

Auteur :

Mots clefs associés à cette page : , ,