Balayage total des dossiers avec l'api win32 (sans dir ni ocx)

Soyez le premier à donner votre avis sur cette source.

Vue 4 419 fois - Téléchargée 563 fois

Description

Salut à tous,

Voici un petit exemple qui montre comment balayer la totalité du contenu d'un dossier ou d'un lecteur, sans utiliser la commande 'Dir' (native à VB) ni d'OCX ou autres librairies additionnelles.

La commande DIR est pratique mais relativement lente (Surtout si l'on scan un disque complet). J'ai été confronté au problème, alors j'ai cherché un moyen d'accèlèrer tous ça. Pour donner un ordre d'idée la routine présente dans le ZIP est 4 à 10 fois plus rapide, selon la machine utilisée...

Bien entendu on pourrait optimiser tous ça en supprimant l'affichage des infos en temp réel. Je pense que certains d'entre vous ne manqueront pas d'y apporter des améliorations... J'ai essayé de mettre un maximum de commentaires pour ceux qui débutent (on y est tous passés... :)))

Voilà, amusez-vous bien et bon code à tous !!!

Codes Sources

A voir également

Ajouter un commentaire Commentaires
statopulos01 Messages postés 18 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 1 août 2007
9 nov. 2007 à 13:54
Bhen moi je trouve qu'elle déchire bien cette source, merci Mr Base! :)
cs_mati Messages postés 2 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 5 juin 2003
5 juin 2003 à 15:18
Je pense que tu pourras m'aider car je debute.
Je voudrais savoir si un fichier est présent sur le disque en le cherchant que par son nom, pour connaitre ensuite son chemin d'acces.
Merci
cs_Base Messages postés 70 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 31 juillet 2003
23 mai 2003 à 09:25
Tu as entièrement raison. A l'origine, j'ai fais cette routine pour générer un fichier d'index. C'est pour ça que j'ai préférer alimenter une chaine plutot que le fichier au fur et à mesure, c'est plus rapide. La chaine était sauvée en une seul fois à la fin. Il est vrai que dans le cas de cet exemple, la chaine ne sert à rien. Finement observé ;-)
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
22 mai 2003 à 16:59
Je constate que c'est 30% plus rapide que Dir(). Néanmoins, c'est 30% plus rapide lorsque on apporte quelques modifs à ton code, dont SURTOUT :
stDCBuffer = stDCBuffer & String(Generation, Chr(9)) & CurFileName & vbNewLine
A supprimer!!! sa ralenti énooooooormément les perfs (de 240 secondes, je passe à 7 secondes...).

Dans ces 30% on a également la taille, l'attribut et la date de chaque fichier, ce que Dir() ne fais pas en "natif".

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.