Récupérer la liste de plusieurs fichiers sélectionner à partir d'une boite de dialogue de style windows 95 dans une liste bo

Description

Récupérer la liste de plusieurs fichiers sélectionner à partir d'une boite de dialogue de style windows 95 dans une liste box. (les noms e fichiers sont en mode DOS 8 caractères)

Source / Exemple :


' cdlOFNAllowMultiselect : multi-sélection
' cdlOFNNoLongNames :Afficher les noms de fichiers longs en mode DOS
  cdl.Flags = cdlOFNAllowMultiselect Or cdlOFNNoLongNames
  cdl.Filter = "*.*"
  cdl.FileName = "*.*"
  cdl.Action = 1
  List1.Clear  ' effacer la liste
  result = Trim(cdl.FileName) 'extrait le resultat de la boite de dialogue
  j = 1
  testchemin = 0
  chemin = "" 'variable pour le chemin
  For i = 1 To Len(result)
  Debug.Print Mid(result, i, 1)
    If Mid(result, i, 1) = Chr$(32) Or i = Len(result) - 1 Then
      If testchemin = 0 Then  ' extraire la première partie du résultat (le chemin)
        chemin = Trim(Mid(result, j, i))
        testchemin = 1
        j = i + 1
      Else ' extraire la partie suivante du résultat (le fichier) et lui ajouter le chemin au début
        List1.AddItem chemin + Mid(result, j, i - j)
        j = i + 1
      End If
    End If
  Next
  ' tester si la liste est vide alors c'est que le résultat contient seulement un fichier séléctionné
  If List1.ListCount = 0 Then List1.AddItem Trim(cdl.FileName)

Conclusion :


Pour sélectionner plusieurs fichiers avec common dialog il faut que l'on précise au contrôle comdlg par cette ligne :

cdl.Flags = cdlOFNAllowMultiselect Or cdlOFNNoLongNames

cdlOFNNoLongNames : extrait les noms en mode 8 caractères et non au format windows
cdlOFNAllowMultiselect : permettre la multisélection

seulement le résultat affiche comme suit :

c:\winnt\ fichier1.ext fichier2.ext fichier3.ext

la première partie c'est le chemin ensuite les autres parties sont les noms de fichiers séparer par des espaces.

Codes Sources

A voir également

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.