Lister toutes les images présentes dans un dossier

Résolu
cs_snake57 Messages postés 204 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 1 novembre 2011 - 26 sept. 2006 à 17:20
cs_snake57 Messages postés 204 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 1 novembre 2011 - 30 sept. 2006 à 23:24
Bonjour,

J'ai un fichier texte (c:\liste.txt) et un dossier (c:\mon_dossier).


Je voudrais pouvoir lister dans mon fichier texte les chemins d'acces des images présentes dans le dossier.




Voici ce que je voudrais avoir dans le fichier texte:
c:\mon_dossier\carte.jpg
c:\mon_dossier\photo.bmp
c:\mon_dossier\image.gif
etc...

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 sept. 2006 à 21:37
Ben voilà, là au moins ca nous montre que tu as essayé de faire quelque chose, et tu demande de l'aide sur un problème précis, tu n'exige plus un code tout fait.

Je n'ai jamais utilisé le FSO pour lister les fichiers d'un dossier (c'est comme prendre un bazzoka pour tuer une mouche...), mais voici ce que ca donnerai avec la fonction dir pour répertorier les fichiers JPG, à adapter à ton code :

Dim sFile As String
sFile = Dir(dOssier & "\*.jpg")
While sFile <> ""
    cPt = cPt + 1
    Print #2, sFile
    sFile = Dir
Wend
3
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
26 sept. 2006 à 23:49
Ou alors, avec le lance-pierre de Dark :

Dim sFile As String
sFile = Dir(dOssier & "\*.*")
While sFile <> ""
     If LCase(sFile ) Like "*.jpg" Or _
        LCase(sFile ) Like "*.bmp" Or _
        LCase(sFile ) Like "*.png" Then
                     cPt = cPt + 1
                     Print #2, sFile
            End If
    sFile = Dir
Wend
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 sept. 2006 à 17:46
Oui ? Et tu voudrais qu'on fasse tout le boulot à ta place, c'est cà ?

Cf le règlement de Codes-Sources...
0
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
26 sept. 2006 à 19:10
Salut
Dark n'a pas tord : Il te suffit de taper "lister fichiers" (section forum) dans le moteur de recherche du site pour trouver ta réponse, du moins une approche.
Sinon, tu tapes F1 après chacun de ces mots clés dans ton VB6 et tu sauras tout :
Dir, Open, Print #, Close

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

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

Posez votre question
cs_snake57 Messages postés 204 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 1 novembre 2011
26 sept. 2006 à 21:24
Non, le truc que je voulais c'était pas que vousme fassiez le tout. Mais je voulais juste savoir comment faire pour que seul les fichier images soient pris en compte car pour l'instant ma fonction me liste tous les fichiers présent dans le dossier.

Voici la fonction si sa peux vous aider:

Sub Lister_fichier(ByVal dOssier As String)
    Dim FSO As Object
    Dim fIchier As Variant
    Dim cPt As Integer
    Set FSO = CreateObject("scripting.filesystemobject")
   
    Open App.path & "\config.txt" For Output As #2
   
        For Each fIchier In FSO.getfolder(dOssier).Files
            cPt = cPt + 1
            Print #2, fIchier
        Next
    Close #2
   
    Set FSO = Nothing
End Sub

Je pense qu'il faut mettre une sorte de filtre quelque part pour que seul les fichier jpg, gif, bmp, etc soient pris en compte.
Et c'est donc ce filtrage que je ne sais pas réaliser.
0
cs_snake57 Messages postés 204 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 1 novembre 2011
26 sept. 2006 à 22:02
Ok ce que tu m'a donné fonctionne bien sauf que cette ligne a une petite erreur:
sFile Dir(dOssier & "\*.jpg") ------> sFile Dir(dOssier & "*.jpg")

Par contre je n'arrive pas a avoir plusieur extension comme je le souhaite. J'ai essayé en mettant or dOssier & "*.bmp" et or "*.bmp" mais sa ne fonctionne pas.

As tu une idée?
0
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
26 sept. 2006 à 23:47
Fais ton test pendant la lecture :                                                        (j'aime bien les bazoukas, moi)
Sub Lister_fichier(ByVal dOssier As String)
    Dim FSO As Object
    Dim fIchier As Variant
    Dim cPt As Integer
    Set FSO = CreateObject("scripting.filesystemobject")
    Open App.path & "\config.txt" For Output As #2
        For Each fIchier In FSO.getfolder(dOssier).Files
            If LCase(Fichier) Like "*.jpg" Or _
               LCase(Fichier) Like "*.bmp" Or _
               LCase(Fichier) Like "*.png" Then
                     cPt = cPt + 1
                     Print #2, fIchier
            End If
        Next
    Close #2
    Set FSO = Nothing
End Sub

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on
0
cs_snake57 Messages postés 204 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 1 novembre 2011
30 sept. 2006 à 23:24
Merci a tous les deux pour vos réponse. J'ai également accepté celle de jack qui complète celle de darksidious.
0
Rejoignez-nous