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

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

8 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
77
3
Merci
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

Dire « Merci » 3

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

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
60
3
Merci
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

Dire « Merci » 3

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

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
77
0
Merci
Oui ? Et tu voudrais qu'on fasse tout le boulot à ta place, c'est cà ?

Cf le règlement de Codes-Sources...
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
60
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2011
0
Merci
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.
Commenter la réponse de cs_snake57
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2011
0
Merci
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?
Commenter la réponse de cs_snake57
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
60
0
Merci
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
Commenter la réponse de cs_Jack
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2011
0
Merci
Merci a tous les deux pour vos réponse. J'ai également accepté celle de jack qui complète celle de darksidious.
Commenter la réponse de cs_snake57