Récupérer un path

Résolu
cs_giallo Messages postés 6 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 16 février 2005 - 15 févr. 2005 à 11:34
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 - 16 févr. 2005 à 19:24
Bonjour,

(Je suis débutant) j''aimerais ajouter une fonctionnalité dans mon appli et je n'ai aucune idée de comment faire...

Je voudrais laisser à l'utilisateur la possibilité de lister tous les
fichiers d'un répértoire (bien entendu il choisirait le répertoire)

J'ai utilisé le composant OpenDiaolog je peux bien choisir un
répertoire mais comment faire pour mémoriser le chemin?? une fois que
cette boite de dialogue se ferme??



Merci

10 réponses

cs_giallo Messages postés 6 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 16 février 2005
15 févr. 2005 à 22:46
hello

Ok Avant d'essayer avec un DirectoryListBox et pour ne pas devoir modifier tout mon code j 'ai quand même essayer ça ...

begin
opendialog1.InitialDir:= getcurrentdir;
opendialog1.Filter:= 'fichier mp3(*.mp3)|*.mp3';
ExtractFilePath(OpenDialog1.Filename);
opendialog1.Execute;

Malheureusement je ne récupère pas un chemin mais une suite de caractères très bizarre!!!
Et je ne sais pas d'ou vient l'erreur!?

Quelques info encore sur mon projet:
Il s'agit de faire une Mp3thèque
Ici l'utilisateur doit indiquer dans quel répertoire se trouve ses chansons ensuite à l'aide du chemin retourné par le OpenDialog j'utiliserai une double boucle et un composant ID3 qui me permettront de lire les informations contenues dans chaque fichier se trouvant dans ce répertoire et d'ajouter ces infos dans une base de données.

Voilà en gros...
3
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
16 févr. 2005 à 14:51
Mais l'utilisation d'un DirectoryListBox ou d'un ShellTreeView me semble avant tout préférable...


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
3
sovitec Messages postés 47 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 24 juillet 2006
15 févr. 2005 à 12:37
Bonjour,



Tant que le dialogue n'est pas détruit le résultat est conservé dans la propriété Filename.

Ton code devrait donc ressembler à



if MyOpenDialog.Execute then

MonFichier := MyOpenDialog.Filename;



tout simplement
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
15 févr. 2005 à 18:27
Si tu désires utiliser un OpenDialog, comme le dit sovitec, tu peux te servir de OpenDialog.Filename pour avoir le chemin du fichier, mais dans ta question, je crois comprendre que tu veux donner à l'utilisateur le choix d'un répertoire, et pas d'un fichier. Donc si tu utilises un OpenDialog, fais ceci : ExtractFilePath(OpenDialog.Filename) pour avoir le nom du répertoire sélectionné dans l'OpenDialog.


Un OpenDialog n'est pas l'idéal pour sélectionner un répertoire... Tu as donc d'autres solutions, je pense principalement à l'utilisation d'un DirectoryListBox ou d'un ShellTreeView.
Pour avoir accès au nom des répertoires sélectionnés fais ceci :
DirectoryListBox.Directory; // pour un DirectoryListBox

ou
ShellTreeView.Path; // pour un ShellTreeView


Ensuite, pour lister les fichiers du répertoire, tu as deux composants correspondants aux deux cités ci-dessus :
- si tu utilises un DirectoryListBox pour sélectionner un répertoire, utilise un FileListBox pour visualiser les fichiers.
- si tu utilises un ShellTreeView pour sélectionner un répertoire, utilise un ShellListView pour visualiser les fichiers.
La liaison entre les deux se fait automatiquement si tu mets "FileListBox1" dans la propriété "FileList" du DirectoryListBox ou alors "ShellListView1" dans la propriété "ShellListView" de ton ShellTreeView.
Rien qu'en faisant ça, tu as déjà un bon petit explorateur Windows


Tu as aussi la possiblité d'ajouter des filtres de format de fichier et tout, mais cela ne correspond plus à la question
Si tu veux des précisions, n'hésite pas à demander, on est là pour ça

@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_giallo Messages postés 6 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 16 février 2005
15 févr. 2005 à 22:19
hello

Ok merci pour vos réponses je vais essayer d'utiliser un DirectoryListBox en fait ça correspond plus à ce dont j'ai besoin.

Je vous tiendrais au courant en cas de succès...(ou d'echec aussi!!)

Bonne soirée
0
cs_giallo Messages postés 6 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 16 février 2005
15 févr. 2005 à 22:45
hello

Ok Avant d'essayer avec un DirectoryListBox et pour ne pas devoir modifier tout mon code j 'ai quand même essayer ça ...

begin
opendialog1.InitialDir:= getcurrentdir;
opendialog1.Filter:= 'fichier mp3(*.mp3)|*.mp3';
ExtractFilePath(OpenDialog1.Filename);
opendialog1.Execute;

Malheureusement je ne récupère pas un chemin mais une suite de caractères très bizarre!!!
Et je ne sais pas d'ou vient l'erreur!?

Quelques info encore sur mon projet:
Il s'agit de faire une Mp3thèque
Ici l'utilisateur doit indiquer dans quel répèrtoire se trouve ses chansons ensuite à l'aide du chemin retourné par le OpenDialog j'utiliserai une double boucle et un composant ID3 qui me permettront de lire les informations contenues dans chaque fichier se trouvant dans ce répertoire et d'ajouter ces infos dans une base de données.

Voilà en gros...
0
sovitec Messages postés 47 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 24 juillet 2006
16 févr. 2005 à 14:31
Il faut inverser les 2 dernières lignes de ton code, le Filename n'est rempli qu'après le Execute :



opendialog1.InitialDir:= getcurrentdir;
opendialog1.Filter:= 'fichier mp3(*.mp3)|*.mp3';
opendialog1.Execute;

ExtractFilePath(OpenDialog1.Filename);
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
16 févr. 2005 à 14:49
Je rajouterais même :

opendialog1.InitialDir:= getcurrentdir;
opendialog1.Filter:= 'fichier mp3(*.mp3)|*.mp3'; // REMARQUE : ceci peut être mis dans les propriétés de l'opendialog via l'inspecteur de propriétés lors de la conception...
if opendialog1.Execute
then
begin

ExtractFilePath(OpenDialog1.Filename);
[...traitement des données...]
end;

car si tu ne rajoutes pas cette condition et que l'utilisateur clique sur annuler, ça renvoie le path quand même et ça continue à traiter les infos


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
cs_giallo Messages postés 6 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 16 février 2005
16 févr. 2005 à 19:12
Hello,



Un grand merci à tous les 2 le problème est résolu...

Comme tu as bcp parlé de DirectoryListBox j'ai essayé et c'est vrai que
c'est exactement ce qu'il me fallait! (heureusement que t'as insisté...)



Bonne soirée

A+
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
16 févr. 2005 à 19:24
Content d'avoir résolu ton problème !


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
Rejoignez-nous