Entwickler-Ecke

Dateizugriff - Unterverzeichnissen auslesen!


cyclone - Sa 31.08.02 16:51
Titel: Unterverzeichnissen auslesen!
Ich möchte in einem bestimmten Ordner alle Unterverzeichnisse ausfindig machen und diese Pfade dann in eine ListBox eintragen... Bis jetzt hab ich das mit TSearchRec gemacht:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
SuchOrdner: TSearchRec;
begin
  if FindFirst('c:\*.*',faAnyFile,SuchOrdner) = 0 then
  begin
    repeat
      if ExtractFileExt(SuchOrdner.Name) = '' then
        begin
          Listbox1.Items.Add('c:\' + SuchOrdner.Name);
        end;
    until FindNext(SuchOrdner) = 0
    FindClose(SuchOrdner);
  end;
end;


Mit diesem Code mache ich alle Ordner und leider auch Dateien ohne Dateiendung fündig und schreibe diese in die ListBox...

Doch wie kann ich alle Unterverzeichnisse auslesen???

Freue mich über Antworten! ;)


Delete - So 01.09.02 08:50

Sei jetzt bitte nicht sauer, aber wenn du mal in die Delphi-Hilfe zu FindFirst usw. schaust, dann findest du neben "faAnyFile" noch eine Reihe weiterer Attribute. Eins davon sollte dich eigentlich auf die richtige Spur bringen.

Als Tipp dann noch folgendes -
Beim Herausfinden der Verzeichnisnamen solltest du die Namen "." und ".." ignorieren und nicht in die Liste aufnehmen. Dabei handelt es sich nämlich um das aktuelle und das übergeordnete Verzeichnis. Zum Testen in der DOS-Box:

Quelltext
1:
2:
dir .
cd ..


cyclone - So 01.09.02 09:48

in der delphi hilfe hab ich das Attribut faDirectory gefunden... doch ich will ja !!!alle!!! Unterverzeichnisse auslesen... und dort komm ich auch net weiter! :(


Delete - So 01.09.02 21:30

Ja, und ... wenn du ein Unterverzeichnis gefunden hast, was spricht dagegen dort hinein zu "springen" (SetCurrentDir, ChDir) und die Funktion sich selbst aufrufen zu lassen? :wink:


Tino - So 01.09.02 21:59

Hallo,

schau Dir mal folgenden FAQ-Beitrag an: Wie kann ich nach Dateien suchen? [http://www.auq.de/viewtopic.php?t=1107].

Gruß
TINO