Fonction récursive pour traitement des fichiers

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
16
17
18
 
Option Explicit
Private doss As Object
Sub chemin(inp)
    Dim dossier, fichiers, elem As Variant
    Set dossier = doss.getfolder(inp)
    Set fichiers = dossier.Files
    For Each elem In fichiers
    On Error Resume Next
 
 'traitement ici
 
    Err.Clear
    Next
    For Each elem In dossier.subfolders
    chemin elem.Path
    Next
End Sub
exemple lister les ficher dans le dossier et sousdossiers de "C:\test"
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
16
17
18
19
20
21
22
23
 
Option Explicit
Private z As Long
Private doss As Object
Sub chemin(inp)
    Dim dossier, fichiers, elem As Variant
    Set dossier = doss.getfolder(inp)
    Set fichiers = dossier.Files
    For Each elem In fichiers
     z = z + 1
    'traitement
    Cells(z, 1) = elem
 
    Next
    For Each elem In dossier.subfolders
    chemin elem.Path
    Next
End Sub
Sub lister()
Set doss = CreateObject("scripting.filesystemobject")
z = 0
Call chemin("C:\test")
End Sub
et pour les supprimer
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
16
17
18
19
20
21
22
 
Option Explicit
Private doss As Object
Sub chemin(inp)
    Dim dossier, fichiers, elem As Variant
    Set dossier = doss.getfolder(inp)
    Set fichiers = dossier.Files
    For Each elem In fichiers
   On Error Resume Next
 
elem.Delete True
 
    Err.Clear
    Next
    For Each elem In dossier.subfolders
    chemin elem.Path
    Next
End Sub
Sub lister()
Set doss = CreateObject("scripting.filesystemobject")
Call chemin("C:\test")
End Sub