Hallo Sascha,
versuche gar nicht erst die Erweiterung der Dateinamen zu entfernen. Die FileListBox zeigt die Dateien selbst an und es gibt keine Einstellung um die Anzeige der Erweiterung zu unterbinden. Wenn die FileListBox nicht gefällt, dann verzichte besser ganz darauf. Nimm eine ListBox und fülle sie selbst:
Delphi-Quellcode:
type
TFindFilesOption = (ffoExcludePath, ffoExcludeExt);
TFindFilesOptions = set of TFindFilesOption;
function FindFiles (
const fileExpr: String; // vollständiger Dateiname mit wildcards
files: TStrings; // Ergebnisliste
options: TFindFilesOptions = [] // Stdandardanzeige mit Pfad und Erweiterung
): Boolean; // Erfolgreich bei True
var
sr: TSearchRec;
path: string;
extWanted: Boolean;
begin
Result := True;
files.Clear;
files.BeginUpdate;
if ffoExcludePath in options
then path := ''
else path := ExtractFilePath(fileExpr);
extWanted := not (ffoExcludeExt in options);
if FindFirst(fileExpr, faArchive, sr) = 0 then
begin
repeat
if extWanted
then files.Add(path + sr.Name)
else files.Add(ChangeFileExt(path + sr.Name, ''));
until FindNext(sr) <> 0;
FindClose(sr);
end else Result := False;
files.EndUpdate;
end;
Aufrufen kannst du das so:
Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
begin
FindFiles('C:\Media\*.mp3', ListBox.Items, [ffoExcludePath, ffoExcludeExt]);
end;
Grüße vom marabu