Einzelnen Beitrag anzeigen

Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Alle Ordner eines Verzeichnises in einer Listbox auflist

  Alt 3. Apr 2007, 11:36
Zitat von Dragon27:
Hallo,

also ich habs jetzt mal so probiert:

[...]

Aber leider funktioniert das nicht

Danke für Eure Hilfe!
Ändere es mal so ab (an sonsten wie gesagt, schau Dir mal die Prozedur in meiner Komponente an!)


Delphi-Quellcode:
function ListFiles : TStringList; // Rückgabewert
var
LStrList: TStringlist;
LPfad: String;
LSearchRec: TSearchRec;

begin
LPfad := 'C:\'; // NICHT "C:/", weiß nicht, ob es sonst klappen würde
LStrList := TStringlist.Create;

if FindFirst(LPfad + '*.*', faAnyFile, LSearchRec) = 0 then
  begin
   repeat
    if (LSearchRec.Attr and faDirectory) = 1 then // Klammern gesetzt
     begin
      LStrList.Add(LSearchREc.Name);
     end;
   until FindNext(LSearchRec) <> 0;
   FindClose(LSearchRec);
  end;

Result := LStrList; // Ergebnis als StringList zurückgeben
LStrList.Free;
end;
Aufruf:
Listbox1.Items := ListFiles; Ob jetzt Deine eigentliche Suchfunktion korrekt programmiert ist, habe ich gerade leider keine Zeit zu testen. Rekursives Suchen dürfte so aber auf jeden Fall (falls nötig) nicht möglich sein. Evtl. könntest Du noch einen Parameter "function listfiles(dir : string) : TStringList" einbauen, damit man der Funktion noch das Verzeichnis übergeben kann, welches man auflisten möchte...

Ich hatte mal das ein komisches Verhalten, dass Verzeichniss nur gefunden wurden, wenn man statt "*.*" nur "*" eingegeben hat. Hat sich dann allerdings beim weiteren Programmieren in Luft aufgelöst!?! Evl. auch einen Versuch wert.

.. und weil das Editieren soo viel Spass macht:

Achte darauf, dass der Pfad, wenn nicht grad "c:\" immer mit einem "\" abgeschlossen wird. Also z.B. "c:\test\" und NICHT "c:\test", sonst pass ja der Ausdruck "LPfad + '*.*'" nicht mehr...

Viel Glück

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat