J'aimerais connaître le nombre de fichiers d'un volume ou d'un répertoire sans avoir à les compter. Une solution par les API de Windows ?
Par avance, merci
J'aimerais connaître le nombre de fichiers d'un volume ou d'un répertoire sans avoir à les compter. Une solution par les API de Windows ?
Par avance, merci
je sais pas si sa t interesse, je n utilise pas d API.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private Sub CommandButton1_Click() Dim fso As Object, Dossier As Object Set fso = CreateObject("Scripting.FileSystemObject") Set Dossier = fso.GetFolder(Directory) Cpte = Cpte + Dossier.Files.Count 'traitement récursif des sous dossiers Set fso = Nothing MsgBox Cpte End Sub
Merci Tomy.
Ok, ma question est mal posée :
J'aimerais connaître le nombre de fichiers d'un volume ou d'un répertoire et de leurs sous-répertoires sans avoir à les compter.
Sinon, j'ai déjà une fonction récursive qui fait ça.![]()
Bonsoir, ousk,
je ne connais personnellement pas d'autres moyens.
Je te précise en outre que seuls les fichiers non cachés seraient comptés par inventaire récursif. Il faut donc (en récursivité) et qu'il convient donc de préciser que tous les attributs doivent être acceptés.
tu observeras d'ailleurs que Microsoft fait la même chose depuis l'explorateur. cherche par exemple les propriétés du répertoire c:\Winnt ou c:\Windows et observe bien ===>> avancement d'un "inventaire"
Salut, j'ai retrouvé cela dans mon bazar, je n'en connais pas l'origine, mais cela devrait te convenir http://cjoint.com/?edsoKmceMF
Merci kiki.
Je souhaitais simplement avoir le nombre de fichiers dans un répertoire et ses sous-répertoire. Pour compter les fichiers, j'ai cette fonction qui fonctionne très bien
Et l'appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Public Function CompteLesFichiers(PathRep As String) As Long Dim fs, RepFich As Variant Set fs = CreateObject("Scripting.FileSystemObject") CompteLesFichiers = fs.GetFolder(PathRep).Files.Count For Each RepFich In fs.GetFolder(PathRep).SubFolders CompteLesFichiers = CompteLesFichiers + CompteLesFichiers(RepFich.path) Next RepFich End FunctionCette fonction peut se décliner sans difficulté pour avoir le nom des répertoires et le nom des fichiers qu'il contient. Mais ce n'est pas mon but.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub CompterSeulement() Dim chemin As String chemin = "D:\Doc\" 'avec ou sans sous-répertoire MsgBox CompteLesFichiers(chemin) End Sub
Mon souhait aurait été d'avoir directement le nombre de fichiers d'un répertoire et ses sous-répertoire sur une ou deux lignes de commande... Et je pense que seule une API de windows pourrait "m'offrir ça.
Si je n'ai pas de réponse, je changerai le sujet de la discussion, il y a plein de choses intéressante là-dedans
Merci à tous.
Partager