ReadDir() Proc ist fertig

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
al90
Beiträge: 1097
Registriert: 06.01.2005 23:15
Kontaktdaten:

ReadDir() Proc ist fertig

Beitrag von al90 »

So hab jetzt mal die ReadDirs() Function von HeX0R hier aus dem Forum
überarbeitet. Statt nur der Fileanzahl liest die Routine jetzt wieder den
kompletten inhalt eines Directorys ein. Die originale 3.94 variante von
NicTheQuick lief ja leider nicht mehr unter PB4.0.

Code: Alles auswählen

Procedure.l ReadDirs(Source$)

   Protected Num.l 
   Num=0
   If Right(Source$,1)<>"\":Source$+"\":EndIf
   Dir.l=ExamineDirectory(#PB_Any,Source$,"") 

   If Dir 

     While NextDirectoryEntry(Dir) 

       Select DirectoryEntryType(Dir) 

         Case 1 
           Num + 1
           name$=DirectoryEntryName(Dir)
           AddGadgetItem(0, -1, source$+name$) 

          Case 2 
            name$=DirectoryEntryName(Dir)
            If name$<>"." And name$<>".." 
              Num + ReadDirs(Source$+DirectoryEntryName(Dir)) 
            EndIf 

        EndSelect 

      Wend 

      FinishDirectory(Dir) 

   EndIf 

   ProcedureReturn Num 

EndProcedure 

If OpenWindow(0, 0, 0, 300, 395,  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered , "ReadDirs Example!") 
  If CreateGadgetList(WindowID(0)) 
    ListViewGadget(0, 0, 0, 300, 395) 
  EndIf 
EndIf 

files=ReadDirs("c:\windows\")
AddGadgetItem(0, -1,"Anzahl Files: "+Str(files)) 

Repeat 
Until WaitWindowEvent() = #PB_Event_CloseWindow
Die Routine kann sicherlich noch weiter optimiert oder ausgebaut werden,
aber hauptsache wir haben erstmal wieder was das unter PB4.0 läuft. :wink:
Benutzeravatar
al90
Beiträge: 1097
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Sorry für das doppel posting. Irgendwie spinnt mein rechner mal wieder.
Bitte mal einer der Mods eines davon löschen. Danke. :wink:
Gesperrt