global NewList fichier.s()
;QuoiLister
#dossier=2
#fichier=1
#all=0
;Mode (afficher les extensions pour les fichiers ou pas)
#EXToui=1
#EXTnon=0
Directory$ = "d:\"
; by Ar-S
Procedure ListAll(repertoire$,QuoiLister,Mode)
If ExamineDirectory(0, repertoire$, "*.*")
While NextDirectoryEntry(0)
select QuoiLister
;Tout lister
case #all
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
AddElement(fichier())
Fichier()=DirectoryEntryName(0)
NbrFichier=ListIndex(fichier())+1
Else
AddElement(fichier())
Fichier()=DirectoryEntryName(0)
NbrFichier=ListIndex(fichier())+1
EndIf
Phrase$="Nombre total de fichiers et de dossier : "
; ne lister que les fichiers
case #fichier
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
AddElement(fichier())
Fichier()=DirectoryEntryName(0)
NbrFichier=ListIndex(fichier())+1
endif
Phrase$="Nombre total de fichiers : "
; ne lister que les dossiers
case #dossier
If DirectoryEntryType(0) <> #PB_DirectoryEntry_File
AddElement(fichier())
Fichier()=DirectoryEntryName(0)
Nbrfichier=ListIndex(fichier())+1
EndIf
Phrase$="Nombre total de dossiers : "
EndSelect
Wend
FinishDirectory(0)
ResetList(fichier())
select mode
; On veut voir les extensions des fichiers
case #EXToui
Debug Phrase$+str(NbrFichier)
While NextElement(fichier())
Debug fichier()
Wend
; On ne veut pas voir les extensions des fichiers
case #EXTnon
Debug Phrase$+str(NbrFichier)
While NextElement(fichier())
if mid(fichier(),len(fichier())-3,1)="."
NomFichier$=left(fichier(),len(fichier())-4)
else
NomFichier$=fichier()
EndIf
Debug NomFichier$
Wend
EndSelect
EndIf
EndProcedure
;Exemple (activer le debug)
ListAll("d:\",#all,0)
Dernière modification par Ar-S le mar. 06/juil./2010 17:46, modifié 1 fois.
;QuoiLister
#dossier = #PB_DirectoryEntry_Directory
#fichier = #PB_DirectoryEntry_File
#all = -1
;Mode (afficher les extensions pour les fichiers ou pas)
#EXToui=1
#EXTnon=0
Directory$ = "c:\"
; by Ar-S
Procedure ListAll(List fichier.s(), repertoire$,QuoiLister,Mode)
ClearList(fichier())
If ExamineDirectory(0, repertoire$, "*.*")
While NextDirectoryEntry(0)
If QuoiLister = #all Or DirectoryEntryType(0) = QuoiLister
AddElement(fichier())
Fichier() = DirectoryEntryName(0)
EndIf
Wend
Select QuoiLister
Case #all
Debug "Nombre total de fichiers et de dossier : " + Str(ListSize(fichier()))
Case #fichier
Debug "Nombre total de fichiers : " + Str(ListSize(fichier()))
Case #dossier
Debug "Nombre total de dossiers : " + Str(ListSize(fichier()))
EndSelect
FinishDirectory(0)
EndIf
ForEach fichier()
Select mode
Case #EXToui ; On veut voir les extensions des fichiers
Debug fichier()
Case #EXTnon ; On ne veut pas voir les extensions des fichiers
If GetExtensionPart(fichier()) <> ""
Debug Left(fichier(), Len(fichier()) - (Len(GetExtensionPart(fichier()))+1))
Else
Debug fichier()
EndIf
EndSelect
Next
EndProcedure
;Exemple (activer le debug)
NewList fichier.s()
ListAll(fichier(), Directory$, #all, 1)
Note: les extensions ne font pas toutes 3 caracteres..