Seite 1 von 1

Anzahl der Dateien in einem Ordner

Verfasst: 04.11.2018 20:20
von marcelx
Hallo,

Wie finde ich die Anzahl der Dateien in einem Ordner?

Gruß

Re: Anzahl der Dateien in einem Ordner

Verfasst: 04.11.2018 20:26
von RSBasic
ExamineDirectory() und eine Variable, um die Dateien zu zählen.
Mit DirectoryEntryType() kannst du unterschieden zwischen Ordner (#PB_DirectoryEntry_Directory) und Dateien (#PB_DirectoryEntry_File).
Wenn du auch die Dateien in Unterverzeichnissen mitzählen möchtest, musst du deine Prozedur rekursiv abrufen, bis alle Unterordner ermittelt wurden.
Hilfsverzeichnisse "." und ".." musst du in deiner Abfrage ausschließen bzw. ignorieren.

[Gelöst] Anzahl der Dateien in einem Ordner

Verfasst: 05.11.2018 00:42
von marcelx
Danke RSBasic für den Hinweis

Code: Alles auswählen

InitialPath$ = "C:\"
Directory$ = PathRequester("Bitte wählen Sie einen Pfad aus", InitialPath$)

Procedure.i CountFiles (sPath.s)
   Protected numFiles = 0
   Protected handle
   If Right(sPath, 1) <> "\"
      sPath + "\"
   EndIf
   
   handle = ExamineDirectory(#PB_Any, sPath, "*.*")
   If handle = 0
      ProcedureReturn  0
   EndIf
   
   While NextDirectoryEntry(handle)
     If DirectoryEntryType(handle) = #PB_DirectoryEntry_File
       numFiles + 1
     Else
       If DirectoryEntryName(handle) <> "." And DirectoryEntryName(handle) <> ".."
           numFiles + CountFiles(sPath + DirectoryEntryName(handle)) 
       EndIf
     EndIf
   Wend
   FinishDirectory(handle)
   
   ProcedureReturn numFiles
 EndProcedure
 
Debug CountFiles(Directory$)