FileSystemObject

Le
Patrick
Bonjour,

J'utilise la bibliothèque "Windows Scripting Runtime" pour accéder au File
System.

Y a-t-il un moyen d'obtenir le nombre total de fichiers dans un répertoire,
y compris ses sous-répertoires ?

Merci pour votre aide.

--
Patrick
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques93
Le #15370281
Bonjour Patrick,
Patrick a écrit :
Bonjour,

J'utilise la bibliothèque "Windows Scripting Runtime" pour accéder au File
System.

Y a-t-il un moyen d'obtenir le nombre total de fichiers dans un répertoire,
y compris ses sous-répertoires ?




Oui, en utilisant la récursivité. Un exemple ici en bas de page, à adapter :


--
Cordialement,

Jacques.
Jacques93
Le #15370261
Jacques93 a écrit :
Bonjour Patrick,
Patrick a écrit :
Bonjour,

J'utilise la bibliothèque "Windows Scripting Runtime" pour accéder au
File System.

Y a-t-il un moyen d'obtenir le nombre total de fichiers dans un
répertoire, y compris ses sous-répertoires ?




Oui, en utilisant la récursivité. Un exemple ici en bas de page, à
adapter :





Par exemple :

Option Explicit

Private Sub Command1_Click()
Dim fso As FileSystemObject
Dim objFolder As Folder
Dim colFiles As Files, objFile As File
Dim StartFolder As String
Dim cntFolders As Long, cntFiles As Long

StartFolder = "C:RepDepart"
Set fso = New FileSystemObject

Set objFolder = fso.GetFolder(StartFolder)
Debug.Print objFolder.Path & " : " & objFolder.Files.Count
Set colFiles = objFolder.Files
For Each objFile In colFiles
Debug.Print objFile.Name
Next
Debug.Print

ShowSubFolders fso, fso.GetFolder(StartFolder), cntFolders, cntFiles
MsgBox colFiles.Count + cntFiles & " fichiers" & vbCrLf & _
cntFolders + 1 & " répertoires"
End Sub


Private Sub ShowSubFolders(fso As FileSystemObject, _
fld As Folder, _
ByRef cntFolders As Long, _
ByRef cntFiles As Long)
Dim SubFolder As Folder, objFolder As Folder
Dim colFiles As Files, objFile As File

For Each SubFolder In fld.SubFolders
Debug.Print SubFolder.Path & " : " & SubFolder.Files.Count
Set objFolder = fso.GetFolder(SubFolder.Path)
Set colFiles = objFolder.Files
For Each objFile In colFiles
Debug.Print objFile.Name
Next
Debug.Print
cntFolders = cntFolders + 1
cntFiles = cntFiles + colFiles.Count
ShowSubFolders fso, SubFolder, cntFolders, cntFiles
Next
End Sub



PS : le FileSystemObject est sujet à diverses appréciations ;-)
Voir ce fil, ou semble t-il il n'est pas si mauvais que ça :


il y a également un lien vers MSDN :


sur la FAQ :


--
Cordialement,

Jacques.
Patrick
Le #15370161
Merci.

--
Patrick


"Jacques93" wrote:

Jacques93 a écrit :
> Bonjour Patrick,
> Patrick a écrit :
>> Bonjour,
>>
>> J'utilise la bibliothèque "Windows Scripting Runtime" pour accéder au
>> File System.
>>
>> Y a-t-il un moyen d'obtenir le nombre total de fichiers dans un
>> répertoire, y compris ses sous-répertoires ?
>>
>
> Oui, en utilisant la récursivité. Un exemple ici en bas de page, à
> adapter :
>
> >
>
Par exemple :

Option Explicit

Private Sub Command1_Click()
Dim fso As FileSystemObject
Dim objFolder As Folder
Dim colFiles As Files, objFile As File
Dim StartFolder As String
Dim cntFolders As Long, cntFiles As Long

StartFolder = "C:RepDepart"
Set fso = New FileSystemObject

Set objFolder = fso.GetFolder(StartFolder)
Debug.Print objFolder.Path & " : " & objFolder.Files.Count
Set colFiles = objFolder.Files
For Each objFile In colFiles
Debug.Print objFile.Name
Next
Debug.Print

ShowSubFolders fso, fso.GetFolder(StartFolder), cntFolders, cntFiles
MsgBox colFiles.Count + cntFiles & " fichiers" & vbCrLf & _
cntFolders + 1 & " répertoires"
End Sub


Private Sub ShowSubFolders(fso As FileSystemObject, _
fld As Folder, _
ByRef cntFolders As Long, _
ByRef cntFiles As Long)
Dim SubFolder As Folder, objFolder As Folder
Dim colFiles As Files, objFile As File

For Each SubFolder In fld.SubFolders
Debug.Print SubFolder.Path & " : " & SubFolder.Files.Count
Set objFolder = fso.GetFolder(SubFolder.Path)
Set colFiles = objFolder.Files
For Each objFile In colFiles
Debug.Print objFile.Name
Next
Debug.Print
cntFolders = cntFolders + 1
cntFiles = cntFiles + colFiles.Count
ShowSubFolders fso, SubFolder, cntFolders, cntFiles
Next
End Sub



PS : le FileSystemObject est sujet à diverses appréciations ;-)
Voir ce fil, ou semble t-il il n'est pas si mauvais que ça :


il y a également un lien vers MSDN :


sur la FAQ :


--
Cordialement,

Jacques.



Jacques93
Le #15370121
Patrick a écrit :
Merci.




De rien, merci du retour :-)

--
Cordialement,

Jacques.
Publicité
Poster une réponse
Anonyme