Parcourir le contenue d'un dossier

Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012
- - Dernière réponse : cs_maxusn
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012
- 24 mai 2012 à 09:36
Bonjour,

Je code sous Visual FoxPro depuis peu et je cherche le moyen de parcourir tous les éléments d'un dossier(fichiers et sous dossiers) pour trouver tous les fichier portant l'extension ".SCX". et stocker leur nom dans un fichier texte.

Le problème c'est que je n'arrive pas a ouvrir mon dossier : la fonction FOPEN("C:\mondossier") me renvoie toujours -1.

Avez vous une idées ?

merci d'avance
Afficher la suite 

7 réponses

Messages postés
834
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
0
Merci
Bonjour,

il te faut regarder les fonctions ADIR() et GETDIR().

En VFP, toutes les fonctions qui commencent par F comme Fopen, Fwrite, etc.. sont des fonctions dites "de bas niveau", c'est à dire les plus proches du C, et elles ne sont pas destinées aux usages les plus courants.

Merci de préciser ta version de VFP à chaque fois que tu poses une question, les réponses peuvent être différentes.
Commenter la réponse de michelatoutfox
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012
0
Merci
merci pour cette réponse rapide.

Désolé j'ai oublié la version, en ce qui concerne ces 2 fonctions je vais regarder ca.
je vous tient au courant.

Pour la version, je la posterais demain quand j'aurais accès a mon poste.

merci
Commenter la réponse de cs_maxusn
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012
0
Merci
Bonjour,

ma version de foxpro est Microsoft Visual FoxPro 9.0 SP2.

J'ai commencé a regarder les 2 fonctions dont vous m'avez parlé, la fonction ADIR() si j'ai bien compris stock dans un tableau le contenue dans dossier.

Ce que je ne comprend pas c'est comment se placer sur le dossier que je veux parcourir : est-ce la fonction getdir() qui fait cela ?
Cette fonction semble recevoir en paramètre un nom de dossier et pas un chemin.

merci d'avance
Commenter la réponse de cs_maxusn
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012
0
Merci
Je n'ai pas trouvé comment éditer un message,excusez moi du triple post.

j'ai trouvé comment me placer sur mon dossier avec la fonction ADIR:
nbCont = ADIR(contenue,"C:\mondossier\*.*").

par contre comment accéder a mes sous dossiers ? car la mon nbCont me retourne seulement le nombre de fichiers et exclu les sous-dossiers.

merci d'avance
Commenter la réponse de cs_maxusn
Messages postés
834
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
0
Merci
ADIR() crée un tableau dont le nom est le premier paramètre que tu lui passes.

Le troisième paramètre te permet précisément de filtrer le contenu ("D" spécifie les dossiers)

Il te suffit de parcourir le tableau.

Mais attention à 2 points importants:
[*] d'une part, ni ADIR ni CURDIR ne se déplacent sur le dossier spécifié, il te faut exécuter la commande CD ou SET DEFAULT TO
[*] ADIR n'a pas de récursivité, tu n'obtiendras que le premier niveau de profondeur

Tu trouveras du code sur ce sujet sur AtoutFox:
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000061
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000343
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000019
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000018
Commenter la réponse de michelatoutfox
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012
0
Merci
Merci beaucoup tous cela va bien m'aidé
Commenter la réponse de cs_maxusn
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012
0
Merci
Bonjour,

je viens juste vous informer que j'ai réussis mon petit programme, merci beaucoup pour votre aide sans vous j'y serais encore.
Commenter la réponse de cs_maxusn