Re: taille de dossiers

Posté par lmame le 4/1/2007 8:31:46
En fait en gros la fonction flistefichier permets de dire "je veux la liste des fichiers de tel répertoire" et au lieu que la fonction retourne la liste des fichiers, elle fait appel à une autre fonction windev (la fonction callback) qui elle sera appelée à chaque fichier trouvé.

Donc la fonction flistefichier ne retourne rien d'autres que le nombre de fichiers trouvés, c'est dans la fonction callback que vous devriez mettre votre traitement.

Regardez l'exemple dans l'aide, en cas faites un copier coller, vous verrez.

En gros pour lister les fichiers jpg dans le répertoire c:\test\, vous faites dans un bouton:
nb_fic est un entier =0
nb_fic=flistefichier("c:\test\*.jpg","montre_fichiers")
info("on a trouvé "+nb_fic+" fichiers.")


Il faut donc créer une procédure locale (ou globale) montre_fichiers() qui sera appelée à chaque fichier qui correspond à la recherche:
Procédure montre_fichiers(path,nom_fic,change,pointeur)
//path est le chemin du fichier trouvé
//nom_fic est le nom du fichier trouvé
//change est une constante qui dit si on a changé de répertoire par exemple (premier fichier du répertoire, fichier, on a changé de répertoire)
//pointeur regardez l'aide, mais laissez le de côté pour l'exemple...

trace("Fichier trouvé "+nom_fic+" dans "+path)

//Si vous Renvoyez Faux, vous STOPPEZ la recherche...
//Renvoyer Faux
Renvoyer Vrai


Code tapé comme ça, donc erreur possible, vérifiez par rapport à l'aide, normalement la fenêtre de trace devrait lister les fichiers jpg contenus dans le répertoire c:\test (et sous répertoires).

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=4859&post_id=20156