DIRLISTING - LISTER UN DOSSIER ET SES SOUS DOSSIERS TRES RAPIDEMENT

cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012 - 28 avril 2008 à 13:26
stevenx1 Messages postés 3 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 juin 2008 - 24 juin 2008 à 12:38
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

stevenx1 Messages postés 3 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 juin 2008
24 juin 2008 à 12:38
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.
stevenx1 Messages postés 3 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 juin 2008
23 juin 2008 à 12:28
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.
cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012
28 avril 2008 à 13:26
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 !
Rejoignez-nous