Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Dateien im Verzeichnis zählen

  Alt 21. Feb 2004, 12:08
Delphi-Quellcode:
function CountFilesInFolder(AFolder: String; AMask: String): Integer;
var tmp1: TSearchRec; //Record in den FindFirst/Findnext die Daten schreibt
    ergebnis: Integer; //zur Zwischenspeicherung von Findfirst und FindNext
begin
  result := 0;
  if (AFolder <> '') then //wenn kein Pfad angegeben wurde könn wir gleich abbrechen...
  begin
    if AFolder[length(AFolder)] <> '\then AFolder := AFolder + '\'; //wenn AFolder keinen '\' am Ende hat fügen wir einen an weil "c:\mypfad" + "*.*" schief gehen würde
    ergebnis := FindFirst(AFolder + AMask, faArchive + faReadOnly + faHidden + faSysFile, tmp1); //erste Datei aus Verzeichnis holen. Ergebnis <> 0 = nix gefunden
    while ergebnis = 0 do //solange wie Dateien gefunden wurden weitersuchen
    begin
     Inc(result); //anzahl der gefundenen Dateien erhöhen
     ergebnis := FindNext(tmp1); //nächste Datei suchen
     while ((tmp1.Name = '.') or (tmp1.Name = '..')) and (ergebnis <> 0) do ergebnis := FindNext(tmp1); //Filtert "." und ".." raus. Eigentlich unnötig weil wir Ordner nicht berücksichtigen, aber bleibt drin falls wir die Attribute mal wieder um "faDirectory" erweitern
    end;
    FindClose(tmp1); //Am Ende der Auflistung sollten wir das SearchRec wieder freigeben
  end;
end;
Beispielaufruf:
  showmessage(inttostr(countfilesinFolder('c:\', '*.dat'); [Edit]Kommentare im Quelltext hinzugefügt zum besseren Verständnis[/Edit]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat