Récuperer de chemin de fichiers et stockage dans une base access

Description

Ce petit prog parcourt les répertoire de tous les disques présent repère les fichiers avec une certaine extension (ici mp3) et stocke leur nom et leur chemin dans une base access

Source / Exemple :


Option Explicit
    Dim db As Database
    Dim rc As Recordset

Sub RecurseTree(CurrentPath As String)
    Dim intN As Integer, intDirectory As Integer, intlngch As Integer
    Dim strFileName As String, strDirectoryList() As String, strtemp As String
    'Lister d'abord tous les fichiers normaux de ce répertoire
    strFileName = Dir(CurrentPath)
    Do While strFileName <> ""
        intlngch = Len(strFileName) - 2
        If intlngch > 3 Then
            'Recuperation de l'extension du fichier dasn la chaine strtemp
            strtemp = Mid(strFileName, intlngch, 3)
            If (strtemp = "mp3") Then
                strFileName = Mid(strFileName, 1, (intlngch - 2))
                'pour le stockage dans une base access
                rc.AddNew
                rc![file_name] = strFileName
                rc![file_path] = CurrentPath
                rc.Update
                'pour le stockage dans un fichier
                'Print #1, "chemin" & CurrentPath
                'Print #1, " nom: " & strFileName
            End If
        End If
        strFileName = Dir
    Loop
    'Puis construire une liste temporaire des sous-répertoires
    strFileName = LCase(Dir(CurrentPath, vbDirectory))
    Do While strFileName <> ""
        'Ignorer le répertoire en cours, le répertoire parent, et
        'le fichier page de Windows NT
        If strFileName <> "." And strFileName <> ".." And _
            strFileName <> "pagefile.sys" Then
            'Ignorer les fichiers qui ne sont pas des répertoires
            If GetAttr(CurrentPath & strFileName) _
                And vbDirectory Then
                intDirectory = intDirectory + 1
                ReDim Preserve strDirectoryList(intDirectory)
                strDirectoryList(intDirectory) = CurrentPath _
                    & strFileName
            End If
        End If
        strFileName = Dir
        'Traiter les autresd événements
        DoEvents
    Loop
    'Traiter récursivement tous les répertoires
    For intN = 1 To intDirectory
        RecurseTree strDirectoryList(intN) & "\"
    Next intN
End Sub

Private Sub Form_Load()
    Dim strStartPath As String, strsql As String
    Me.Show
    Print "Je travaille..."
        Me.MousePointer = vbHourglass
    'pour le stockage dasn une base access
    Set db = OpenDatabase("c:\bdmp3.mdb")
    strsql = "select * from Tablemp3"
    Set rc = db.OpenRecordset(strsql, dbOpenDynaset)
    If (Not rc.EOF) Then
        rc.MoveFirst
        Do While (Not rc.EOF)
            rc.Delete
            rc.MoveNext
        Loop
    End If
    rc.Close
    Set rc = db.OpenRecordset("tablemp3", dbOpenDynaset)
    strStartPath = "C:\"
    'pour le stockage dans un fichier
    'Open "C:\FILETREE.TXT" For Output As #1
    RecurseTree strStartPath
    'Close #1
    rc.Close
    Set rc = Nothing
    db.Close
    Set db = Nothing
        Me.MousePointer = vbDefault
    Unload Me
End Sub

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.