Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateinamen der gesamten CD in die Tlistbox einfügen (https://www.delphipraxis.net/17142-dateinamen-der-gesamten-cd-die-tlistbox-einfuegen.html)

UnixX 28. Feb 2004 19:02


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?????????? :|

Luckie 28. Feb 2004 19:05

Re: Dateinamen der gesamten CD in die Tlistbox einfügen
 
Du kannst dir sekber helfen: FindFirst FindnextFindFirst Findnext.

Hansa 29. Feb 2004 00:35

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 13:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz