![]() |
Dateinamen der gesamten CD in die Tlistbox einfügen
Hallo!!!!!!!!!!!!! :hi:
Ich möchte von einer CD die gesamten Dateien mit Pfad in eine Tlistbox einfügen. Ich habe mir schon was zurecht gebastelt, aber das funktioniert noch nicht so ganz. Es liest nur die oberen Ordner und Dateien ein, aber keine Unterverzeichnisse mit Dateien.
Delphi-Quellcode:
procedure filllist(Folder: string; sl: TStrings);
var Rec : TSearchRec; begin sl.Clear; if SysUtils.FindFirst(Folder + '*.*', faAnyFile, Rec) = 0 then try repeat sl.Add(Rec.name ); until SysUtils.FindNext(Rec) <> 0; finally SysUtils.FindClose(Rec); end; end; function BrowseDialog(const Title: string; const Flag: integer): string; var lpItemID : PItemIDList; BrowseInfo : TBrowseInfo; DisplayName : array[0..MAX_PATH] of char; TempPath : array[0..MAX_PATH] of char; begin Result:=''; FillChar(BrowseInfo, sizeof(TBrowseInfo), #0); with BrowseInfo do begin hwndOwner := Application.Handle; pszDisplayName := @DisplayName; lpszTitle := PChar(Title); ulFlags := Flag; end; lpItemID := SHBrowseForFolder(BrowseInfo); if lpItemId <> nil then begin SHGetPathFromIDList(lpItemID, TempPath); Result := IncludeTrailingBackslash(TempPath); GlobalFreePtr(lpItemID); end; end; procedure TForm1.readClick(Sender: TObject); var S:string; begin s := BrowseDialog('Choose for all files', BIF_RETURNONLYFSDIRS); filllist(s,listbox.Items ); end; Könnt ihr mir helfen?????????? :| |
Re: Dateinamen der gesamten CD in die Tlistbox einfügen
Du kannst dir sekber helfen:
![]() |
Re: Dateinamen der gesamten CD in die Tlistbox einfügen
Da wirst Du wohl kaum um Rekursion drumrum kommen. Jedenfalls ist das ein klassisches Beispiel für deren Einsatz. In dem "Doublekiller" Thread kannst du auch mal gucken. Teile davon sind 1:1 für Deinen Zweck umsetzbar.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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