Récupérer un path [Résolu]

Messages postés
6
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
16 février 2005
- - Dernière réponse : ni69
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
6
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
16 février 2005
3
Merci
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...

Merci cs_giallo 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_giallo
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
3
Merci
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 !

Merci ni69 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de ni69
Messages postés
49
Date d'inscription
mardi 18 mai 2004
Dernière intervention
24 juillet 2006
0
Merci
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
Commenter la réponse de sovitec
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
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 !
Commenter la réponse de ni69
Messages postés
6
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
16 février 2005
0
Merci
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
Commenter la réponse de cs_giallo
Messages postés
6
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
16 février 2005
0
Merci
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...
Commenter la réponse de cs_giallo
Messages postés
49
Date d'inscription
mardi 18 mai 2004
Dernière intervention
24 juillet 2006
0
Merci
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);
Commenter la réponse de sovitec
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
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 !
Commenter la réponse de ni69
Messages postés
6
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
16 février 2005
0
Merci
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+
Commenter la réponse de cs_giallo
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
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 !
Commenter la réponse de ni69

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.