Arborescence de fichiers

Signaler
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010
-
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010
-
Bonjour,

J'aimerais savoir s'il existe un composant qui permet d'obtenir l'arborescence des repertoires/fichiers d'une machine, qui possede en racine le bureau de Windows.

Il s'agit de l'arborescence qui permet d'acceder rapidement a "Mes documents", au Poste de Travail ainsi qu'aux favoris reseaux.

Je bosse avec C++ Builder 6 et les composants existant permettent seulement de parcourir les repertoires du lecteur specifie et ne donnent pas acces au reseau.

Existe t il un composant qui liste les repertoires de cette facon :

ou faut il que je me fasse un composant qui s'en occupe.

Peut etre est il possible d'obtenir ce type d'arborescence via les API ?

Merci d'avance

Otofraise

9 réponses

Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
3
ou via les API c'est possible : Avec GetOpenFileName ()




OPENFILENAME st;
char buffer[MAX_PATH];

// Pas de fichier par défaut
buf[0]='';
// On met tous les champs inutilisés à 0
memset(&st,0,sizeof(OPENFILENAME));
st.lStructSize=sizeof(OPENFILENAME);
// hDlg est le HWND de la boite de dialogue qui demande l'ouverture
// Ou NULL si la boite de dialogue n'a pas de fenêtre parent
st.hwndOwner=hDlg;
// La syntaxe est : Description1Filtre1Description2Filtre2
st.lpstrFilter="Executables - Fichiers de commandes*.exe;*.bat";
st.lpstrFile=buffer;
st.nMaxFile=MAX_PATH;
st.lpstrTitle="Recherche de l'exécutable";
st.Flags=NULL;
// Contient le répertoire initial ou NULL
st.lpstrInitialDir=NULL;
if(GetOpenFileName(&st))
// buffer contient notre chemin

//www.developpez.com






voilà, @+, vinc1008881
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

Merci pour ta reponse vinc1008881 !

Je ne savais afficher un dialog d'ouverture qu'a travers les composants de borland . Grace a toi je vais pouvoir me liberer un peu plus de la VCL .

Cependant (et oui je sais je suis horriblement exigeant ) je voudrais que l'arborescence ci-dessus s'affiche dans la fenetre de base, comme un panel ou un treeview. Cette arborescence permet de selectionner des repertoires, sans avoir a selectionner de fichier. D'ailleurs, on la retrouve dans l'exemple que tu m'as donne, dans la liste deroulante intitulee "Rechercher dans" situé en au du dialog d'ouverture.
Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
3
La je ne sais vraiment pas comment faire ...
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
SELECTEUR DE DOSSIER (WIN32)
http://www.cppfrance.com/code.aspx?id=17138

ciao...
BruNews, MVP VC++
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

Encore une fois, Merci BruNews !

C'est bien l'arborescence que je cherchais. Mais est il possible de l'obetenir, non pas dans une boite de dialogue, mais comme un element de la fenetre principale ?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Je pense que oui, on peut quasi tout faire avec l'API Windows, mais je n'ai jamais eu à le faire.
Il faudra lui dévier sa defProc pour récup le ENTER ou sa notif de fermeture, soit par hook soit par sous classement, c'est à tester.

ciao...
BruNews, MVP VC++
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

hmm hmm je t'avoue franchement que je ne maitrise pas vraiment les API Windows et du coup je suis un peu pommer entre les defProc et les hook

Mais deja tu me donne on bonne base pour poursuivre mes recherches.

A ce sujet, connaitrais tu des ouvrages qui pourraient m'aider dans le developpement avec les API ?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

Encore un grand MERCI a toi BruNews ! Je m'en vais potasser tout ca.

Otofraise