Dans le code suivant:
Code : Tout sélectionner
Procedure.s ListFiles(directory.s, filename.s, extension.s, directoryid.l )
; Deffinition de la variable pour connaître le nombre de MP3 que contiendra la PlayListe
; On la déclare en Global pour qu'elle puisse être utilisée à l'extérieure de la procedure
Global compteur
; Vérification de l'existance du caractère \ à la fin du chemain du répertoir à lister
If Right(directory, 1) <> "\"
directory + "\"
EndIf
; On liste touts les fichier du répertoir
ExamineDirectory(directoryid, directory, "*.*")
; Fichier suivant
dirid = NextDirectoryEntry()
While dirid
Select dirid
Case 1 ; Si c'est un fichier
file.s = DirectoryEntryName()
this_extension.s = LCase(GetExtensionPart(file))
this_filename.s = LCase(Left(file, Len(file) - Len(this_extension)))
If Len(this_extension)
this_filename = Left(this_filename, Len(this_filename) - 1)
If this_extension = extension Or extension = "*"
If this_filename = filename Or filename = "*"
file.s = directory + DirectoryEntryName()
; Après avoir trouvé un MP3, on l'écrit dans le fichier que l'on initialisera avant d'appeler la procedure
WriteStringN(file)
; On augmente le compteur de 1
compteur = compteur + 1
EndIf
EndIf
EndIf
Case 2 ; Si sous-dossier découvert (pas sur expliquez-moi svp)
If DirectoryEntryName() <> "." And DirectoryEntryName() <> ".."
; On rappel la procedure dans laquelle on est pour lister le sous-dossier
ListFiles(directory + DirectoryEntryName() + "\", filename, extension, directoryid + 1)
; On utilise le répertoir suivant
UseDirectory(directoryid)
EndIf
EndSelect
dirid = NextDirectoryEntry()
Wend
ProcedureReturn ""
EndProcedure
et puis pourquoi on mait ExamineDirectory(Directoryid,directory,"*.*") et pas ExamineDirectory(Directoryid,directory,"*.mp3") par exemple?
Si l'on faisait comme je le dit, ça ne rendrait pas le code plus lisible ou en tout cas ça l'optimiserais pas? vu qu'il y a moins de vérifications à faire.
Si quelqu'un pouvait m'éclairer.
Merci d'avance.