Thema: Delphi Ordnerinhalt

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.119 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Ordnerinhalt

  Alt 30. Dez 2007, 22:00
Moin Masteric,

ich habe mich jetzt nicht in das von Dir genannte Beispiel eingelesen, würde es aber so machen:


Delphi-Quellcode:
procedure FindAllFilesAndFolders(const AsRoot : string;const AslResult : TStrings);
// AsRoot: Verzeichnis, dass durchsucht werden soll
// AslResult: Die Liste, die die Ergebnisse bekommt

var
  sr : TSearchRec;
  sRoot : string;

begin
  // Nichts gefunden, dann fertig
  if FindFirst(IncludeTrailingPathDelimiter(AsRoot)+'*.*',faAnyFile,sr) <> 0 then exit;
  try
    // Ansonsten das übergebene Startverzeichnis mit \ am Ende merken
    sRoot := IncludeTrailingPathDelimiter(AsRoot);
    repeat
      // Wurde ein Verzeichnis gefunden?
      if (sr.Attr and faDirectory) = faDirectory then begin
        // Nicht die Standardverzeichnisse . bzw. .. ?
        // Da . und .. nur Verzeichnisse sein können, wird erst als zweites darauf geprüft
        if (sr.Name <> '.') and (sr.Name <> '..') then begin
          // Dann mit in die Ergebnisliste aufnehmen
          AslResult.Add(sRoot+sr.Name);
          // und auch dieses durchsuchen
          FindAllFilesAndFolders(sRoot+sr.Name,AslResult);
        end;
      end else begin
        // Kein Verzeichnis, dann sollte es eine Datei sein.
        // und kann somit gleich in die Eregebnisliste
        AslResult.Add(sRoot+sr.Name);
      end;
    // bis nichts weiter gefunden wurde
    until FindNext(sr) <> 0;
  finally
    // Jetzt noch die belegten Resourcen freigeben
    FindClose(sr);
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat