Moin, nicht hauen wegen dem Titel. Wie man Dateien aus einem Ordner in einer Listbox anzeigt weiss ich nun schon. Ich wusste nur nicht wie ich es beschreiben soll...
Also, mein Problem: Ich habe eine ComboBox die ich über eine Ini-Datei füttere. In der Ini-Datei sind die Einträge für die Combobox und eine Verzeichnisangabe mit diesem Schema:
[aaa]
Description=Test1
Directory=C:\Test
[bbb]
Description=Test2
Directory=D:\Hallo
In der ComboBox wird nun z.B. Test1 ausgewählt und nun möchte ich mir den Inhalt (evtl. nur bestimmte Formate) in einer Listbox anzeigen lassen. Ich habe schon eine Dateisuche. Ich weiss allerdings nicht wie ich das hinbekomme, das ich nicht mehr in einem festen Verzeichnis suche, sonder in dem Verzeichnis was über die ComboBox ausgewählt wurde.
Hoffe die Frage ist einigermaßen Verständlich.
Hier mal der Quelltext den ich zum Durchsuchen nehme:
Delphi-Quellcode:
procedure GetFilesinDirectory(Directory: String; const Mask: String;
List: TStrings; WithSubDirs, ClearList: Boolean);
procedure ScanDir(const Directory: String);
var
SR: TSearchRec;
begin
if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) = 0 then try
repeat
List.Add(Directory + SR.Name)
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
if WithSubDirs then begin
if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
repeat
if (SR.Attr = faDirectory) and
(SR.Name <> '.') and (SR.Name <> '..') then
ScanDir(Directory + SR.Name + '\');
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
end;
end;
begin
List.BeginUpdate;
try
if ClearList then
List.Clear;
if Directory = '' then Exit;
if Directory[Length(Directory)] <> '\' then
Directory := Directory + '\';
ScanDir(Directory);
finally
List.EndUpdate;
end;
end;
Hiermit rufe ich bis jetzt die Suche auf. Könnte aber auch gleich eingelesen werden wenn ich auf einen ComboBox-Eintrag klicke.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var F: TSearchRec;
var I: Integer;
begin
GetFilesInDirectory('C:\DelphiTestverzeichnis', '*.avi*', ListBox1.Items, True, True);
if FindFirst('C:\DelphiTestverzeichnis', faAnyFile, F) = 0 then try
Edit1.Text := F.Name;
finally
FindClose(F)
end;
Für Tipps wäre ich sehr Dankbar!
mfg black_hawk
[edit=alcaeus]code- durch delphi-Tags ersetzt. In Zukunft bitte die richtigen Tags verwenden. Mfg, alcaeus[/edit]