Bonjour,
Je me permets de faire encore appel à la communauté, car je bloque sur le problème suivant :
Je souhaite afficher toute l'arborescence d'un dossier, avec ses n sous-dossiers et les fichiers contenus dans chacun d'entre eux.
Bien entendu, je ne connais pas à l'avance la "profondeur" de la recherche.
Plus tard, j'intégrerai très certainement cette recherche dans un TreeView, avec des checkbox et tout le tsouin-tsouin, mais ce n'est pas le but pour l'instant.
J'ai bien essayé de décortiquer le script "ShellTristateTreeView.au3", mais sans succès, car il fait trop de choses, et je ne comprends pas bien le cheminement du script, tant les variables sont nombreuses.
Pour résumer, je ne recherche pas forcément un script tout écrit, mais une méthode, des indices, ou des pistes pour alimenter ma réflexion que je mène depuis quelques jours...
Je pense qu'il vaut mieux que je commence par là, puis par la suite, j'essaierai de représenter tout ça dans une TreeView, puis j'ajouterai des checkboxs, avec lequels je pourrai supprimer des fichiers ou dossiers....etc....
Je remercie à l'avance ceux ou celles qui voudraient perdre un peu de leur temps pour m'aider,
Bonne journée,
Gnifrus.
[R] Arborescence à partir d'un dossier
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
Gnifrus
- Niveau 4

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
[R] Arborescence à partir d'un dossier
Modifié en dernier par Gnifrus le ven. 18 juin 2010 10:07, modifié 1 fois.
Re: [..] Arborescence à partir d'un dossier
Avec FileFindFirstFile et FileFindNextFile tu devrais surement trouver ton bonheur mais
tu devras créer le TreeView toi même.
Il y a aussi FileSelectFolder mais je ne pense pas que ça corresponde à tes besoins.
tu devras créer le TreeView toi même.
Il y a aussi FileSelectFolder mais je ne pense pas que ça corresponde à tes besoins.
- ZDS
- Membre émérite

- Messages : 554
- Enregistré le : jeu. 10 juin 2010 10:35
- Localisation : 22300 Cul-d'chouette Langue-de-vache
- Status : Hors ligne
Re: [..] Arborescence à partir d'un dossier
Bonjour !
Si c'est pour un parcours direct de l'arborescence, Dididj t'a orienté dans la bonne direction.
Si c'est en terme de représentation (et donc d'algorithmique) que tu as besoin d'aide, voici un script récursif qui te représente une arborescence en un tableau de tableau de tableau de ... tableau ^^ A toi ensuite de parcourir cette SdD pour en faire ce que tu veux (un treeview, un log, un graphe, etc...) au fur et à mesure :Exemple d'application de l'algo précédent à un parcours de C: en profondeur 3 (pas plus loin que 3 niveaux d'arborescence pour pas bouffer trop de mémoire) :
Si c'est pour un parcours direct de l'arborescence, Dididj t'a orienté dans la bonne direction.
Si c'est en terme de représentation (et donc d'algorithmique) que tu as besoin d'aide, voici un script récursif qui te représente une arborescence en un tableau de tableau de tableau de ... tableau ^^ A toi ensuite de parcourir cette SdD pour en faire ce que tu veux (un treeview, un log, un graphe, etc...) au fur et à mesure :
► Afficher le texteAlgorithme de parcours d'arborescence
► Afficher le texteAlgorithme de parcours d'arborescence
Modifié en dernier par ZDS le jeu. 17 juin 2010 15:07, modifié 1 fois.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
-
Gnifrus
- Niveau 4

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
Re: [..] Arborescence à partir d'un dossier
Merci à Dididj et ZDS pour votre aide !
Je connaissais déjà les fonctions FileFindFirstFile et FileFindNextFile, mais le problème était que je n'arrivais pas à "entrer" dans les sous-dossiers, sur n profondeur...
J'ai bien essayé de tester si le fichier trouvé au moyen de FileFindNextFile était un répertoire (grâce à la fonction FileGetAttrib), afin de savoir si je devais de nouveau entrer dedans pour recommencer un FileFindFirstFile et FileFindNextFile, mais ça devient vite galère à gérer, car il faut revenir en arrière après..etc...
Bref, la solution donnée par ZDS correspond plus à ce que je cherche à faire.
Reste maintenant à décortiquer tout ça et d'essayer de comprendre.
C'est pourquoi je laisse encore ce topic ouvert quelques temps.
Merci en tout cas à tous les 2,
C'est sympa d'aider les autres (moi, j'en suis pas encore là, hélas.....
)
Je connaissais déjà les fonctions FileFindFirstFile et FileFindNextFile, mais le problème était que je n'arrivais pas à "entrer" dans les sous-dossiers, sur n profondeur...
J'ai bien essayé de tester si le fichier trouvé au moyen de FileFindNextFile était un répertoire (grâce à la fonction FileGetAttrib), afin de savoir si je devais de nouveau entrer dedans pour recommencer un FileFindFirstFile et FileFindNextFile, mais ça devient vite galère à gérer, car il faut revenir en arrière après..etc...
Bref, la solution donnée par ZDS correspond plus à ce que je cherche à faire.
Reste maintenant à décortiquer tout ça et d'essayer de comprendre.
C'est pourquoi je laisse encore ce topic ouvert quelques temps.
Merci en tout cas à tous les 2,
C'est sympa d'aider les autres (moi, j'en suis pas encore là, hélas.....
-
Gnifrus
- Niveau 4

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
Re: [..] Arborescence à partir d'un dossier
Euh.....je reviens à la charge....
Je ne comprends pas à quoi correspond $resultat[1][2]=[[0,$folder]] ?
Apparemment, c'est un tableau à 2 dimensions (1 colonnes sur 2 lignes), mais on stocke quoi ? Le couple [0,"C:\wamp"] ? Dans quel but ?
Merci encore...
Gnifrus.
Je ne comprends pas à quoi correspond $resultat[1][2]=[[0,$folder]] ?
Apparemment, c'est un tableau à 2 dimensions (1 colonnes sur 2 lignes), mais on stocke quoi ? Le couple [0,"C:\wamp"] ? Dans quel but ?
Merci encore...
Gnifrus.
- ZDS
- Membre émérite

- Messages : 554
- Enregistré le : jeu. 10 juin 2010 10:35
- Localisation : 22300 Cul-d'chouette Langue-de-vache
- Status : Hors ligne
Re: [..] Arborescence à partir d'un dossier
Pour le [1][2] (une ligne sur deux colonnes), c'est l'initialisation de la SdD symbolisant l'endroit où tu en es, c'est à dire "pour le moment, 0 résultat dans $folder"; c'est de la redondance d'information, pas forcément utile. Comme on dit dans le jargon enssatien, c'est la mise en place de l'invariant 
Oui, c'est un tableau à 2 entrées , la première ligne n°0 correspond à :
[ nombre d'items trouvés (dossier + fichiers) ; nom du dossier en cours de parcours ]
Les suivantes de 1 à n sont aussi des couples :
[ nom du fichier ; chaine vide ] dans le cas d'un dossier
[ nom du dossier ; sous-tableau ] dans le cas d'un dossier
Et c'est là la subtilité : le sous-tableau est lui même un tableau ! Comme un sous-ensemble qui est lui-même un ensemble.
Mais bon, je te conseille plutôt de te baser sur le second script, il est un peu plus explicite et ne se base que sur un tableau à une dimension (même pas, puisqu'il y a pas de tableau).
Oui, c'est un tableau à 2 entrées , la première ligne n°0 correspond à :
[ nombre d'items trouvés (dossier + fichiers) ; nom du dossier en cours de parcours ]
Les suivantes de 1 à n sont aussi des couples :
[ nom du fichier ; chaine vide ] dans le cas d'un dossier
[ nom du dossier ; sous-tableau ] dans le cas d'un dossier
Et c'est là la subtilité : le sous-tableau est lui même un tableau ! Comme un sous-ensemble qui est lui-même un ensemble.
Mais bon, je te conseille plutôt de te baser sur le second script, il est un peu plus explicite et ne se base que sur un tableau à une dimension (même pas, puisqu'il y a pas de tableau).
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
-
Gnifrus
- Niveau 4

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
Re: [..] Arborescence à partir d'un dossier
Merci encore,
J'ai compris, dans l'ensemble, le déroulement du script, mais je n'aurais jamais pu faire ça tout seul !
Enfin, un jour peut-être ?
Merci de ton aide,
@bientôt, (ça, j'en suis à peu prêt sûr !)
Gnifrus
J'ai compris, dans l'ensemble, le déroulement du script, mais je n'aurais jamais pu faire ça tout seul !
Enfin, un jour peut-être ?
Merci de ton aide,
@bientôt, (ça, j'en suis à peu prêt sûr !)
Gnifrus
