Common dialog + ouvrir plusieurs fichiers.

Résolu
KC62 Messages postés 229 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 juin 2007 - 10 nov. 2003 à 14:49
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010 - 9 août 2005 à 12:52
Bonjour a tous,

Je suis en train de dévellopper une appli ( un lecteur media)
dans celle-ci, j'ai créer un playlist je souheterais pouvoir ouvrir plusieurs fichier en meme temps avec une common dialog !
je m'explique si lutilisateurs désire ouvrir plusieurs MP3 situé dans un meme dossier pour linstant il doit ouvrir la common autant de fois qu'il y a de fichiers. existe t'il un moyen pour quil puisse les selectionner tous et que je puisse récupérer tous les chemins ?

Je sais que je pourrais utiliser un dirlistbox mais je souheterais savoir si ma question a une réponse possible !

Merci d'avance ;) .

KC62

On a pas toutes les solutions de tous les probleme mais chaque probleme à ses solutions ...

11 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 nov. 2003 à 15:25
Salut KC62
En complément, sache que le résultat (.FileName) aura un format un peu particulier :
En premier, tu vas trouver le répertoire, suivi de la liste des fichiers sélectionnés.
Il te faut donc isoler le nom du répertoire, et isoler chaque nom de fichier.
Regarde de plus prêt la chaine, je pense que les séparations sont des caractères Chr(0) ou vbTab (à confirmer), donc facile à décomposer :

Dim Tablo() as String
... Appel de ta CommonDialog CD
Tablo = Split(CD.FileName, Chr(0))

Le nom du répertoire se retrouve dans Tablo(0), et la liste des fichiers dans les index suivants

Vala
Jack
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 nov. 2003 à 15:18
Il suffit en fait de modifier certaines proprietes du controle....

    CommonDialog1.Flags = cdlOFNExplorer Or cdlOFNAllowMultiselect
    CommonDialog1.ShowOpen


il ne te reste plus qu'a decouper le resultat obtenu, pour retrouver tes noms de fichier....

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
KC62 Messages postés 229 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 juin 2007
19 nov. 2003 à 23:07
Merci a vous deux sa fé plezz ...

On a pas toutes les solutions de tous les probleme mais chaque probleme à ses solutions ...
0
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010
5 août 2005 à 13:45
Moi pour recuperer les addresses entieres j'ai fait:

t2 = 1
racine = tablo(0) & ""
Do
List1.AddItem racine & tablo(t2)
t2 = t2 + 1
Loop Until tablo(t2) = ""

Ca marche bien je récupere toutes les adresses mais à la fin sa met une erreur "subscript out of range" et sa me surligne la ligne que j'ai mise en brune.

Vous savez m'aider?

Merci davance
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 août 2005 à 15:00
Racine = tablo(0) & ""
For t2 = 1 to Ubound ( tablo )
List1.AddItem racine & tablo(t2)
Next t2

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010
5 août 2005 à 18:40
Merci bien
0
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010
5 août 2005 à 21:31
Ouai non ca va pas, la premiere adresse de ma list est un dossier.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 août 2005 à 23:58
je ne saisi pas ce que tu dis ....

Dim Racine as String
Dim Tablo() as String

CD.ShowOpen
tablo = Split ( CD.FileName , VbNullChar )
Racine = tablo(0) & ""
List1.Clear
For t2 = 1 to Ubound ( tablo )
List1.AddItem racine & tablo(t2)
Next t2

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010
6 août 2005 à 14:18
Ok ca marche now j'avais du faire une erreur. Mais j'ai encore un probleme (désoler), je n'arrive plus a selectionner qu'un seul fichier alors j'ai essaillier comme cela.

tablo = Split(cd.FileName, vbNullChar)
racine = tablo(0) & ""
If tablo(1) <> "" Then
For t2 = 1 To UBound(tablo)
List1.AddItem racine & tablo(t2)
Next t2
Else
List1.AddItem cd.FileName
End If

Mais sa me met une erreur "subscript out of range" quand je selectionne qu'un seul fichier et sa me surligne la ligne en brune.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 août 2005 à 19:15
les éléments ne sont séparés que si tu en selectionne plus d'un.
Il suffit de tester la taille de ton tableau

tablo = Split(cd.FileName, vbNullChar)
racine = tablo(0) & ""
If Ubound(tablo) > 0 Then
For t2 = 1 To UBound(tablo)
List1.AddItem racine & tablo(t2)
Next t2
Else
List1.AddItem cd.FileName
End If

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010
9 août 2005 à 12:52
Ok merci bien! Désolé, j'ai mis un petit temps a repondre car j'avais un autre probleme et je ne voulais pas te deranger a nouveau donc j'ai chercher a fond sur la solution et codes sources lavais ouf ! Merci en tt cas
0
Rejoignez-nous