Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1219 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Récupérer tous les noms de fichier dans un dossier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer tous les noms de fichier dans un dossier

n°2145769
Mnoxis
Posté le 14-06-2012 à 09:35:34  profilanswer
 

Bonjour,
 
Je cherche à créer un script me permettant de récupérer tous les noms de fichiers dans un dossier. En effet, j'aurai un dossier avec un certain nombre de .jpg (par exemple cn-pimy0.jpg), et je dois récupérer uniquement le pimy0 sous la forme d'un string. Mais je n'ai absolument aucune idée de quelles fonctions utiliser, n'étant pas un habitué du VB. Pourriez-vous m'aider ? Merci !
 
J'en ai besoin pour ensuite chercher le numéro de téléphone dans une base LDAP associé à ce string.
 
Quand je fais ça :
recupererNom = Dir("C:\Documents and Settings\s.offredo\Mes documents\Projet 1\photos" )
 
ça me retourne un beau 0. Pourtant j'ai 2 fichiers dedans.


Message édité par Mnoxis le 14-06-2012 à 10:49:21
mood
Publicité
Posté le 14-06-2012 à 09:35:34  profilanswer
 

n°2145804
kiki29
Posté le 14-06-2012 à 13:01:23  profilanswer
 

Salut, ici en VBA Excel , à adapter à ton contexte
Créer un bouton et l'affecter à Tst

Option Explicit
 
Declare Function QueryPerformanceCounter Lib "Kernel32" (X As Currency) As Boolean
Declare Function QueryPerformanceFrequency Lib "Kernel32" (X As Currency) As Boolean
 
Dim NbFichiers As Long, NbDossiers As Long
Dim Dep As Currency, Fin As Currency, Freq As Currency
 
Private Sub Liste(ByVal sChemin As String, ByVal bSousDossier As Boolean)
Dim FSO As Object, Dossier As Object, SousDossier As Object, Fichier As String
 
    Set FSO = CreateObject("Scripting.FileSystemObject" )
    Set Dossier = FSO.GetFolder(sChemin)
 
    Fichier = Dir$(sChemin & "\*.*" )
    Do While Len(Fichier) > 0
        NbFichiers = NbFichiers + 1
        With Feuil1
            .Cells(NbFichiers, 1) = sChemin
            .Cells(NbFichiers, 2) = Fichier
        End With
        Fichier = Dir$()
        Application.StatusBar = "Dossiers : " & NbDossiers & "  Fichiers : " & NbFichiers
    Loop
 
    If bSousDossier Then
        For Each Dossier In Dossier.SubFolders
            NbDossiers = NbDossiers + 1
            Liste Dossier.Path, True
        Next Dossier
    End If
 
    Set Dossier = Nothing
    Set FSO = Nothing
End Sub
 
Sub Tst()
Dim sChemin As String
    sChemin = ThisWorkbook.Path
    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = sChemin & "\"
        .Title = "Sélectionner un Dossier"
        .AllowMultiSelect = False
        .InitialView = msoFileDialogViewDetails
        .ButtonName = "Sélection Dossier"
        .Show
        If .SelectedItems.Count > 0 Then
            Feuil1.Cells.Clear
            Application.ScreenUpdating = False
            Application.StatusBar = ""
            DoEvents
            QueryPerformanceCounter Dep
            NbFichiers = 0: NbDossiers = 0
 
            Liste .SelectedItems(1), True
 
            Application.ScreenUpdating = True
            QueryPerformanceCounter Fin: QueryPerformanceFrequency Freq
            Application.StatusBar = "Dossiers : " & NbDossiers & "  Fichiers : " & NbFichiers & " / " & Format(((Fin - Dep) / Freq), "0.00 s" )
        End If
    End With
End Sub


Message édité par kiki29 le 14-06-2012 à 13:16:37

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
n°2145814
Mnoxis
Posté le 14-06-2012 à 13:41:48  profilanswer
 

Merci beaucoup je vais regarder ça.

n°2159313
mat_lefebv​re
Posté le 05-10-2012 à 17:13:54  profilanswer
 

Bonjour
Eventuellement, une autre solution sans installation ou macro avec un fichier de commande dos.
Ce code liste le répertoire et le mets la lite dans un fichier liste.txt.
Pour ce faire :  
Copier le code ci dessous dans le bloc note et enregistrer le fichier dans le dossier concerné.
Renommer le fichier .txt en .bat (exemple listerepertoire.bat)
Ensuite une fois éxécuté le fichier listerepertoire.bat (deux clik sur le fichiet bat) copier le contenu de liste.txt dans writer.  
 
    CLS
    if exist liste.txt del liste.txt
    DIR/B *.* > liste.txt
    liste.txt
    pause

 
nota : Pour modifier clik droit sur le fichier .bat > modifier


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Récupérer tous les noms de fichier dans un dossier

 

Sujets relatifs
[VBA] Enregistrement de valeurs dans un fichier texteLire un fichier en Shell avec une boucle
lancer un programme via un fichier externeLire un fichier sur serveur FTP
[BATCH] Recherche dans un fichier texteRécupérer les méthodes
modifier un fichier xmlInsérer fichier en xml sur une page en html
Chemin de fichier en variable 
Plus de sujets relatifs à : Récupérer tous les noms de fichier dans un dossier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR