![]() |
Ordnernamen in Listbox laden
Hallo,
wie kann ich alle Ordner die sich im Programmordener befinden auslesen und ihre Namen in einer Listbox anzeigen? Danke im Vorraus |
Re: Ordnernamen in Listbox laden
Mit FindFirst() und FindNext() durch das Verzeichnis iterieren, auf das faDirectory-Attribut prüfen und Namen eintragen.
|
Re: Ordnernamen in Listbox laden
Hallo
Das geht z.B mit der ![]() Flexibler bist du jedoch mit ![]() ![]()
Delphi-Quellcode:
procedure ListDirectories(LB: TListBox; Path: PChar);
var i: Integer; begin with LB do begin Perform(LB_DIR, DDL_DIRECTORY, Integer(Path)); for i := Pred(Items.Count) downto 0 do if Items[i][1] <> '[' then Items.Delete(i); end; end; procedure TForm1.Button1Click(Sender: TObject); begin ListDirectories(ListBox1,'C:\*.*'); end; |
Re: Ordnernamen in Listbox laden
Danke für den Code, es geht.
Leider werden aber die Namen mit [ ] umrandet und es befindet sich auch ein [...] in der ListBox. Kann man das irgendwie ändern? Danke |
Re: Ordnernamen in Listbox laden
Edit: i sollte vom Typ Integer sein und nicht Word. Probier's nochmals.
|
Re: Ordnernamen in Listbox laden
Die Namen werden immer noch mit [ ] umrandet und es befindet sich auch ein [..] in der ListBox.
Weisst du was ich noch tun könnte? |
Re: Ordnernamen in Listbox laden
In dem Code findest Du eine For-Schleife.
In dieser wird jeder Eintrag gelöscht, der nicht mit '[' beginnt. In dieser Schleife kannst Du nun einbauen, dass die Zeichen '[' und ']' ausgeschnitten werden. Dein Freunde hierfür sind ![]() ![]() Auch kannst Du den Eintrag [..] darin ebenfalls löschen. Gruß |
Re: Ordnernamen in Listbox laden
Es tut mir leid, ich habe nie auf dieser Ebene mit Delphi gearbeitet. Könntest Du mir nicht einen kleinen Beispielcode schreiben?
Wäre dir sehr dankbar. |
Re: Ordnernamen in Listbox laden
Oder halt so
Delphi-Quellcode:
Am besten du schaust dir mal die Delphihilfe an. Einfach Copy eingeben und dann schauen was es dir anzeigt. Da siehst du auch direkt, welche Parameter die Funktion erwartet etc.
procedure TForm1.Button1Click(Sender: TObject);
begin ListBox1.Items.Assign(DirectoryListing('C:/*')); end; function TForm1.DirectoryListing(const PATH: string): TStrings; var S : TSearchRec; begin Result := TStringlist.Create; if FindFirst(PATH, faDirectory, S) = 0 then begin repeat if (S.Attr and faDirectory) = S.Attr then Result.Add(S.Name); until FindNext(S) <> 0; FindClose(S); end; if Result.Count = 0 then Result.Add(format('%s enthält keine Ordner', [path])); end; Lg |
Re: Ordnernamen in Listbox laden
Danke, aber da werden jetzt noch zuerst . und .. angezeigt. Weisst Du wie man die wegmacht?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz