Einzelnen Beitrag anzeigen

Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#7

Re: Ordner in einer Listbox auflisten

  Alt 10. Apr 2005, 17:24
Delphi-Quellcode:
Procedure FindDirs(DirPath: String; StringList:TStrings; Recurse: Boolean = false);
var SR:TSearchRec;
begin
  if AnsiLastChar(DirPath)^ <> '\'
  then DirPath:=DirPath + '\';
  try
    { im angegebenen Verzeichniss nach Unterordnern suchen -- }
    if FindFirst(DirPath+'*.*',faDirectory,SR)=0 then
    repeat
      { wenn SR ein Ordner ist und nicht '.' und '..' heißt, dann... }
      if ((SR.Attr and faDirectory)<>0) and (SR.Name <> '.') and (SR.Name <> '..') then
      begin
        { ...füge den Ordner der StringList (z.B. einer Listbox(.Items)) hinzu }
        StringList.Add(DirPath+SR.Name+'\'); // s.u. Erläuterung
        { wenn Recurse = true, dann durchsuche den aktuellen Ordner (SR.Name) nach Unterordnern }
        if Recurse then FindDirs(DirPath+SR.Name,StringList,true);
      end;
    until FindNext(SR) <> 0; // wenn keine Unterordner mehr gefunden wurden, Suche beenden
  finally
    FindClose(SR); // Search Handle schließen, da es nicht mehr gebraucht wird
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  FindDirs('c:',listbox1.Items);
end;
Wenn du jetzt nur den Ordnernamen anzeigen lassen möchtest, dann schreibe nur 'StringList.Add(SR.Name);' wie es SirThornberry schon vorgeschlagen hatte.

@Airblader: Du hast ja recht mit deiner Vermutung, aber wieso sollte das Verzeichnis so heißen? Das wäre dann ja nur ein Schreibfehler vom Programmierer, denn bei Windows ist es unmöglich, ein Verzeichnis so zu benennen.
  Mit Zitat antworten Zitat