CountExplorerFiles() Compter les fichiers d'un ExplorerList

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

CountExplorerFiles() Compter les fichiers d'un ExplorerList

Message par Ar-S »

Ayant posté cela sur le fofo anglais, je vous le mets aussi ici.
La procédure sert à compter les fichiers d'un explorerlist

Code : Tout sélectionner

Procedure.i CountExplorerFiles(gadgetexplorer,filter$="*.*")
  ; Ar-S
  Shared NumFile
  NumFile = 0
  Directory$ = GetGadgetText(gadgetexplorer)
  If ExamineDirectory(0,Directory$,filter$)
    While NextDirectoryEntry(0)
      If DirectoryEntryType(0) = #PB_DirectoryEntry_File
        NumFile + 1
      EndIf
    Wend
    FinishDirectory(0)
  EndIf
  ProcedureReturn NumFile
EndProcedure

Example :

Code : Tout sélectionner

Enumeration
  #Window
EndEnumeration
Enumeration
  #Explorer
  #String
EndEnumeration


Procedure.i CountExplorerFiles(gadgetexplorer,filter$="*.*")
  ; Ar-S
  Shared NumFile
  NumFile = 0
  Directory$ = GetGadgetText(gadgetexplorer)
  If ExamineDirectory(0,Directory$,filter$)
    While NextDirectoryEntry(0)
      If DirectoryEntryType(0) = #PB_DirectoryEntry_File
        NumFile + 1
      EndIf
    Wend
    FinishDirectory(0)
  EndIf
  ProcedureReturn NumFile
EndProcedure


If OpenWindow(#Window, 462, 336, 400, 400, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
  ExplorerListGadget(#Explorer, 5, 5, 380, 355, "c:\",#PB_Explorer_AutoSort)
  StringGadget(#String, 10, 370, 375, 20, Str(CountExplorerFiles(#Explorer))+" files")
   
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #Explorer
            SetGadgetText(#String,Str(CountExplorerFiles(#Explorer))+" files")
            
          Case #String
        EndSelect
      Case #PB_Event_CloseWindow
        Select EventWindow()
          Case #Window
            CloseWindow(#Window)
            Break
        EndSelect
    EndSelect
  ForEver
  
EndIf
Si vous souhaitez ne compter qu'un type de fichier (par exemple jpg), utilisez la syntaxe suivante :

Code : Tout sélectionner

CountExplorerFiles(gadgetexplorer,"*.jpg")
Voilou.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels