Lister fichiers d'un répertoire mais de faàon recursive !

loranba

XLDnaute Nouveau
Bonjour a tous,

Nouveau venu et plus que novis, j'ai récupérer un bout de code me permettant de récupérer dans un répertoire la liste des fichiers (mp3) afin d'otenir les proprietes des fichiers (nom, debit, album, artist .......etc)

Mon pb est que se code ne parcours pas les sous-dossiers.
Par exemple, je ne peux pas lui faire scanner tous mon répertoire de MP3, je ne peux le faire que dans chaque répertoire de chaque album..... je ne sais pas si je suis clair ?


voici le code récupéré :

Private Sub CommandButton1_Click()
Dim sPath As String: sPath = GetShellFolder
If sPath = "" Then Exit Sub
If Dir(sPath, vbDirectory) = "" Then Exit Sub
Dim Headers(35), x%, y&, i&, p$, n$, oFile As Object
Dim objShell As Object, oFolder As Object
Set objShell = CreateObject("Shell.Application")
Set oFolder = objShell.Namespace(CStr(sPath))
Application.ScreenUpdating = False
Workbooks.Add
For i = 0 To 34
Headers(i) = oFolder.GetDetailsOf(oFolder.Items, i)
Select Case i
Case 1 To 34
x = x + 1
Cells(1, x) = Headers(i)
End Select
Next
y = 1
For Each oFile In oFolder.Items
p = oFile.Path: n = oFile.Name
If Right$(n, 4) = ".mp3" Then
x = 0: y = y + 1
For i = 0 To 34
Select Case i
Case 1 To 34
x = x + 1
Cells(y, x) = oFolder.GetDetailsOf(oFile, i)
With ActiveSheet
.Hyperlinks.Add .Range("A" & y), Hlink(p), , n, n
End With
End Select
Next
End If
Next
Range("A2").Select
ActiveWindow.FreezePanes = True
Rows("1:1").Font.Bold = True
Cells.Columns.AutoFit
Range("A1").Select
Set oFolder = Nothing: Set objShell = Nothing
MsgBox "Fin de la récupération"
UserForm1.Hide
End Sub

Private Function GetShellFolder() As String
Const Title = "Sélectionnez un répertoire !"
Dim oSHA As Object, oSF As Object, oItem As Object
On Error GoTo 1
Set oSHA = CreateObject("Shell.Application")
Set oSF = oSHA.BrowseForFolder(0, Title, &H1 Or &H10, &H11)
If InStr(TypeName(oSF), "Folder") <> 1 Then Exit Function
For Each oItem In oSF.parentfolder.Items
If oItem.Name = oSF.Title Then
GetShellFolder = oItem.Path
Exit Function
End If
Next
GetShellFolder = oSF.Title
Set oSF = Nothing: Set oSHA = Nothing
Exit Function
1: MsgBox "Error: " & Err.Number & vbLf & Err.Description, 48
End Function

Private Function Hlink(p As String) As String
Hlink = "file:///" & Replace(Replace(p, " ", "%20"), "", "/")
End Function


Merci d'avance pour votre aide je vais bientot m'arracher les cheveux ..... Aie !!
 

loranba

XLDnaute Nouveau
Re : Lister fichiers d'un répertoire mais de faàon recursive !

Merci tottit2008 pour ta reponse super rapide.
Dans ton premier j'ai récuperé au post 35 le fichier.
Mais comment faire pour affcihier d'autre propriete pour chaque fichiers ( debit, artist, album .......etc ) ?
Merci encore
Laurent
 

loranba

XLDnaute Nouveau
Re : Lister fichiers d'un répertoire mais de faàon recursive !

Re,

Comment faire en utilisant la synthaxe adéquatte, pour récuperer l'artitst, l'album, le debit....

Cells(Ligne, 3).Value = CDate(Fic.DateLastModified)
Cells(Ligne, 4).Value = CDate(Fic.DateCreated)

Merci
 

Discussions similaires

Réponses
19
Affichages
2 K
Réponses
2
Affichages
309

Statistiques des forums

Discussions
312 506
Messages
2 089 121
Membres
104 038
dernier inscrit
Helpme59