Recherche
Recherche
Les mémos
Je débute...
Visites

 998871 visiteurs

 1 visiteur en ligne

Lister les fichiers contenus dans un dossier (et sous-dossiers)

Dans Access 2007, Microsoft à supprimer l'objet FileSearch. Il faut donc se rabattre sur le FileSystemObject en activant la référence "Microsoft Scripting Runtime"

Pour alimenter une zone de liste, on écrira par exemple :
 

Me!LaListe.RowSource = fnListFiles("c:\")

ou

Me!LaListe.RowSource = fnListFiles("e:\Images\", True)

La fonction :

Public Function fnListFiles(SourceDir As String, _
                      Optional SubDir As Boolean = False) As String
    Dim FSO As Scripting.FileSystemObject
    Dim srcFolder As Scripting.Folder
    Dim SubFolder As Scripting.Folder
    Dim FileItem As Scripting.File
    Dim sFL As String
    Const cnFolder As Long = 16
    '
    Set FSO = New Scripting.FileSystemObject
    Set srcFolder = FSO.GetFolder(SourceDir)
    '
    '// boucle sur la liste des fichiers
    For Each FileItem In srcFolder.Files
        sFL = IIf(sFL = "", FileItem.Path, sFL & ";" & FileItem.Path)
    Next FileItem
    '// boucle sur le répertoire - si requis
    If SubDir Then
        For Each SubFolder In srcFolder.SubFolders
            If SubFolder.Attributes = cnFolder Then
                fnListFiles SubFolder.Path, True
            End If
        Next SubFolder
    End If
    '// récupérer la liste de fichiers
    fnListFiles = sFL
    '// libération
    Set srcFolder = Nothing
    Set FSO = Nothing
End Function


Catégorie : Les mémos - Fichiers
Page lue 5271 fois