OVH Cloud OVH Cloud

[WD9] liste des dossiers

4 réponses
Avatar
Mickael R.
Bonjour,

Pour un programme de mise à jour, j'ai besoin d'utiliser une fonction de
recherche de fichier. J'ai dans un premier temps utilisé la fonction
fListeFichier, mais celle ci est bien trop longue car elle parcourt
l'ensemble des dossiers du disque.

Je sais que le fichier que je cherche ne se trouvera pas ni dans le
dossier Windows, ni dans Program Files, ni dans Document and Settings !
Or c'est dans ces dossiers, que la recherche prend le plus de temps !

Je cherche donc a créer une fonction qui me permettrait d'obtenir la
liste des dossiers à la racine d'un disque. Libre à moi de lancer cette
fonction sur chaque sous dossier, si celui-ci est suceptible de contenir
mon fichier.

Mais je ne trouve aucune fonction de windev pour cela !

La fonction fListeFichier commence par lister tous les fichiers puis dès
qu'elle "s'engoufre" dans un dossier, il n'est plus possible de
l'arrêter sans arrêter completement la recherche (RENVOYER Faux arrête
tout parcours !)

Auriez vous une idée afin d'obtenir rapidement la liste des dossiers
d'un disque ou d'un répertoire ?

Merci d'avance.

Mika

4 réponses

Avatar
Kevin TYRIAN
Salut,

Tu peux utiliser la fonction fRep si tu ne veux pas parcourir toute
l'arborescence.
Elle peut lister au choix les fichiers ou les répertoires contenus dans un
répertoire donné.

Par exemple pour lister tous les fichiers contenus dans c:temp :

tabFic est un tableau de 0 chaine
sRep est une chaine = "c:temp"
sFic est une chaine = frep(sRep+"*.*",frfichier)
tantque sFic<>""
tableauajoute(tabFic,sRep+sFic)
sFic = frep("")
fin

Pour les répertoires, il te suffit de remplacer la constante frfichier par
frrepertoire.

Kevin

"Mickael R." a écrit dans le message de news:
42f767f3$0$12940$
Bonjour,

Pour un programme de mise à jour, j'ai besoin d'utiliser une fonction de
recherche de fichier. J'ai dans un premier temps utilisé la fonction
fListeFichier, mais celle ci est bien trop longue car elle parcourt
l'ensemble des dossiers du disque.

Je sais que le fichier que je cherche ne se trouvera pas ni dans le
dossier Windows, ni dans Program Files, ni dans Document and Settings !
Or c'est dans ces dossiers, que la recherche prend le plus de temps !

Je cherche donc a créer une fonction qui me permettrait d'obtenir la liste
des dossiers à la racine d'un disque. Libre à moi de lancer cette fonction
sur chaque sous dossier, si celui-ci est suceptible de contenir mon
fichier.

Mais je ne trouve aucune fonction de windev pour cela !

La fonction fListeFichier commence par lister tous les fichiers puis dès
qu'elle "s'engoufre" dans un dossier, il n'est plus possible de l'arrêter
sans arrêter completement la recherche (RENVOYER Faux arrête tout parcours
!)

Auriez vous une idée afin d'obtenir rapidement la liste des dossiers d'un
disque ou d'un répertoire ?

Merci d'avance.

Mika


Avatar
Mickael R.
Excellent !!! Si ca marche comme tu dis, c'est exactement ce que je veux !

Merci beaucoup Kevin !

Je vais tester ca et je te tiens au courant.

Merci !


Kevin TYRIAN wrote:
Salut,

Tu peux utiliser la fonction fRep si tu ne veux pas parcourir toute
l'arborescence.
Elle peut lister au choix les fichiers ou les répertoires contenus dans un
répertoire donné.

Par exemple pour lister tous les fichiers contenus dans c:temp :

tabFic est un tableau de 0 chaine
sRep est une chaine = "c:temp"
sFic est une chaine = frep(sRep+"*.*",frfichier)
tantque sFic<>""
tableauajoute(tabFic,sRep+sFic)
sFic = frep("")
fin

Pour les répertoires, il te suffit de remplacer la constante frfichier par
frrepertoire.

Kevin

"Mickael R." a écrit dans le message de news:
42f767f3$0$12940$

Bonjour,

Pour un programme de mise à jour, j'ai besoin d'utiliser une fonction de
recherche de fichier. J'ai dans un premier temps utilisé la fonction
fListeFichier, mais celle ci est bien trop longue car elle parcourt
l'ensemble des dossiers du disque.

Je sais que le fichier que je cherche ne se trouvera pas ni dans le
dossier Windows, ni dans Program Files, ni dans Document and Settings !
Or c'est dans ces dossiers, que la recherche prend le plus de temps !

Je cherche donc a créer une fonction qui me permettrait d'obtenir la liste
des dossiers à la racine d'un disque. Libre à moi de lancer cette fonction
sur chaque sous dossier, si celui-ci est suceptible de contenir mon
fichier.

Mais je ne trouve aucune fonction de windev pour cela !

La fonction fListeFichier commence par lister tous les fichiers puis dès
qu'elle "s'engoufre" dans un dossier, il n'est plus possible de l'arrêter
sans arrêter completement la recherche (RENVOYER Faux arrête tout parcours
!)

Auriez vous une idée afin d'obtenir rapidement la liste des dossiers d'un
disque ou d'un répertoire ?

Merci d'avance.

Mika







Avatar
Mickael R.
Ca marche impeccable !
Merci beaucoup Kevin

Au passage, l'aide de fRep ne mentionne pas l'usage qui est utilisé ici
avec sFic = fRep("") qui permet de sélectionner le répertoire suivant !

Kevin TYRIAN wrote:
Salut,

Tu peux utiliser la fonction fRep si tu ne veux pas parcourir toute
l'arborescence.
Elle peut lister au choix les fichiers ou les répertoires contenus dans un
répertoire donné.

Par exemple pour lister tous les fichiers contenus dans c:temp :

tabFic est un tableau de 0 chaine
sRep est une chaine = "c:temp"
sFic est une chaine = frep(sRep+"*.*",frfichier)
tantque sFic<>""
tableauajoute(tabFic,sRep+sFic)
sFic = frep("")
fin

Pour les répertoires, il te suffit de remplacer la constante frfichier par
frrepertoire.

Kevin

"Mickael R." a écrit dans le message de news:
42f767f3$0$12940$

Bonjour,

Pour un programme de mise à jour, j'ai besoin d'utiliser une fonction de
recherche de fichier. J'ai dans un premier temps utilisé la fonction
fListeFichier, mais celle ci est bien trop longue car elle parcourt
l'ensemble des dossiers du disque.

Je sais que le fichier que je cherche ne se trouvera pas ni dans le
dossier Windows, ni dans Program Files, ni dans Document and Settings !
Or c'est dans ces dossiers, que la recherche prend le plus de temps !

Je cherche donc a créer une fonction qui me permettrait d'obtenir la liste
des dossiers à la racine d'un disque. Libre à moi de lancer cette fonction
sur chaque sous dossier, si celui-ci est suceptible de contenir mon
fichier.

Mais je ne trouve aucune fonction de windev pour cela !

La fonction fListeFichier commence par lister tous les fichiers puis dès
qu'elle "s'engoufre" dans un dossier, il n'est plus possible de l'arrêter
sans arrêter completement la recherche (RENVOYER Faux arrête tout parcours
!)

Auriez vous une idée afin d'obtenir rapidement la liste des dossiers d'un
disque ou d'un répertoire ?

Merci d'avance.

Mika







Avatar
Pascal ROY
Bonjour,

Il me semble l'avoir vu dans l'exemple fourni dans l'aide sur cette
fonction...

Pascal

Mickael R. a écrit :
Ca marche impeccable !
Merci beaucoup Kevin

Au passage, l'aide de fRep ne mentionne pas l'usage qui est utilisé ici
avec sFic = fRep("") qui permet de sélectionner le répertoire suivant !

Kevin TYRIAN wrote:

Salut,

Tu peux utiliser la fonction fRep si tu ne veux pas parcourir toute
l'arborescence.
Elle peut lister au choix les fichiers ou les répertoires contenus
dans un répertoire donné.

Par exemple pour lister tous les fichiers contenus dans c:temp :

tabFic est un tableau de 0 chaine
sRep est une chaine = "c:temp"
sFic est une chaine = frep(sRep+"*.*",frfichier)
tantque sFic<>""
tableauajoute(tabFic,sRep+sFic)
sFic = frep("")
fin

Pour les répertoires, il te suffit de remplacer la constante frfichier
par frrepertoire.

Kevin

"Mickael R." a écrit dans le message de news:
42f767f3$0$12940$

Bonjour,

Pour un programme de mise à jour, j'ai besoin d'utiliser une fonction
de recherche de fichier. J'ai dans un premier temps utilisé la
fonction fListeFichier, mais celle ci est bien trop longue car elle
parcourt l'ensemble des dossiers du disque.

Je sais que le fichier que je cherche ne se trouvera pas ni dans le
dossier Windows, ni dans Program Files, ni dans Document and Settings !
Or c'est dans ces dossiers, que la recherche prend le plus de temps !

Je cherche donc a créer une fonction qui me permettrait d'obtenir la
liste des dossiers à la racine d'un disque. Libre à moi de lancer
cette fonction sur chaque sous dossier, si celui-ci est suceptible de
contenir mon fichier.

Mais je ne trouve aucune fonction de windev pour cela !

La fonction fListeFichier commence par lister tous les fichiers puis
dès qu'elle "s'engoufre" dans un dossier, il n'est plus possible de
l'arrêter sans arrêter completement la recherche (RENVOYER Faux
arrête tout parcours !)

Auriez vous une idée afin d'obtenir rapidement la liste des dossiers
d'un disque ou d'un répertoire ?

Merci d'avance.

Mika