DIRLISTING - LISTER UN DOSSIER ET SES SOUS DOSSIERS TRES RAPIDEMENT

Signaler
Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012
-
Messages postés
3
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 juin 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46487-dirlisting-lister-un-dossier-et-ses-sous-dossiers-tres-rapidement

Messages postés
3
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

Bonjour,

encore moi ;-))

en fait j'ai été trop vite... ça n'est pas 10 fois plus rapide... c'est kif kif... puisque mes anciennes fonctions recherchaient récursivement et qu'ici cela s'arrête du fait de la fonction "ErrRaise"

Sinon, un p'tit détail : étant donné que je recherche des données à plein d'endroits, dans plein de dossiers et sous dossiers, j'arrive à une saturation de handle occupé et cela me bloque l'explorateur ainsi que le réseau...
j'ai donc modifié deux procédures :

Private Sub Class_Terminate()
Dim I As Long
For I = 1 To CurSearch + 1
If Search(I).Handle Then FindClose Search(I).Handle
Next
CurSearch = 0
End Sub

et j'ai ajouter "Class_Terminate" dans la procédure "ErrRaise"

Si ça peut aidé...
Stéphane.
Messages postés
3
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

Salut santiago69,

Très intérressant ce code...
J'ai testé ta classe car j'ai besoin de lister plusieurs centaines de fichiers qui se trouve dans de nombreux sous-dossier sur le réseau...

--> Réultat, question rapidité, c'est 10 fois + rapide que la fonction DIR ou même le FSO...

Petite remarque tout le même, concernant la fonction de récursivité :
Lorsque l'on fait une recherche avec un filtre, du style :
dl.Dir "C:\WINDOWS\system32\*.txt", Not dlDirectory
si aucun fichier n'est trouvé dans le premier dossier, la fonction ne regarde pas dans les sous dossier (comme pourrait le faire, sous DOS, cette commande :
Dir C:\WINDOWS\system32\*.sav /s

Bonne continuation,
Stéphane.
Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012

Slt,

Bien commenté malgrés pas mal de code déjà existants !
Il a au moins l'intéret d'etre concis et bien expliqué ;)

Je regarderais en détail plus tard (pas le tps en ce moment)

Bonne continuation !