Utilisation de FindFirstFileEx

Résolu
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 17 déc. 2012 à 14:44
 Utilisateur anonyme - 18 déc. 2012 à 14:06
Bonjour à tous,

J'ai besoin de texter l'existence (ou non) d'un sous-répertoire, c'est à dire savoir si AU MOINS UN sous-répertoire existe ou non dans un dossier donné.

Pour ça l'API FindFirstFile n'est pas très efficiente car elle ne fait pas le distingo a priori sur dossier/fichier. Sachant que le scan se fait dans un ordre aléatoire, je ne voudrais pas être obligé de scanner X fichiers avant de découvrir qu'il n'y a pas de sous-dossiers.

Par contre j'ai découvert l'API FindFirstFileEx, mais celle-ci utilise un Enum en C (que j'ai) mais sans valeur:
typedef enum _FINDEX_SEARCH_OPS {
    FindExSearchNameMatch,
    FindExSearchLimitToDirectories,
    FindExSearchLimitToDevices,
    FindExSearchMaxSearchOp
} FINDEX_SEARCH_OPS


Je crois me souvenir qu'en l'absence de valeur pour chaque item VB lui attribue un long commençant à 0.

Ma question, quelqu'un a t'il déjà utiliser cette API en VB6 ou possède quelques notions de transposition d'une telle énumération de C vers VB. Cela me rendrait bigrement service.

Merci d'avance.


Calade

22 réponses

Utilisateur anonyme
18 déc. 2012 à 13:32
cela fait ajouter un contrôle peut-être inutile

Pas vraiment inutile, c'est vrai on ajoute un contrôle, mais on s'en sert et on le supprime en suite.

Le coté "lourd" c'est sa création et suppression, mais au niveau du temps de traitement, je ne pense pas que ce soit plus lent qu'une autre méthode.

Tu as raison:
tester réellement pour connaître la + rapide

Je vais essayer entre le Dir() et l'objet DirListBox

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
18 déc. 2012 à 14:06
Résultat:
Je compte le nombre de dossiers dans "c:\windows", "c:\windows\system32" et "c:\windows\fonts"

Fonction Dir: 157 dossiers en 2937 millisecondes
Avec le DirListBox: 157 dossiers en 47 millisecondes

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Rejoignez-nous