Parcourir le contenue d'un dossier

Signaler
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012
-
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012
-
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

7 réponses

Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
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.
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012

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
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012

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
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012

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
Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
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
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012

Merci beaucoup tous cela va bien m'aidé
Messages postés
6
Date d'inscription
mardi 22 mai 2012
Statut
Membre
Dernière intervention
24 mai 2012

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.