Lister toutes les images présentes dans un dossier [Résolu]

Signaler
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2011
-
cs_snake57
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2011
-
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

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
90
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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
90
Oui ? Et tu voudrais qu'on fasse tout le boulot à ta place, c'est cà ?

Cf le règlement de Codes-Sources...
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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)
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2011

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.
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2011

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?
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2011

Merci a tous les deux pour vos réponse. J'ai également accepté celle de jack qui complète celle de darksidious.