Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.478 Beiträge
 
Delphi 7 Professional
 
#9

AW: Filterfehler bei FileListBox

  Alt 19. Mär 2021, 09:51
Hab's gerade mal mit Delphi 7 ausprobiert.

Der "Fehler" liegt nicht in der TFileListBox, sondern im in der procedure TFileListBox.ReadFileNames genutzten FindFirst. Kann man mit 'ner einfachen Routine testen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sr : TSearchRec;
begin
  if FindFirst('c:\temp\*.mmp',faAnyFile,sr) = 0 then begin
    ShowMessage(sr.Name
             + #13#13
             + sr.FindData.cAlternateFileName
             + #13#13
             + sr.FindData.cFileName);
  end;
end;
Es werden auch die Dateien mit der Endung mmpz gefunden.

Dies gilt analog auch für beliebige andere Dateiendungen, sofern sie länger als drei Zeichen sind, das ist dann wohl der alten Namenskonvention aus DOS-Zeiten von 8.3 geschuldet.
Oder anders formuliert: FindFirst sucht nach den kurzen Dateinamen (TSeachRec.FindData.cAlternateFileName), wie man sie in der Kommandozeile z. B. mit dir /x angezeigt bekommt. zu dem so gefundenen werden dann die langen Dateinamen in TSearchRec.Name bzw. TSearchRech.FindData.cFileName geliefert.
Die Arbeitsweise ist also "korrekt", wenn auch nicht mehr unbedingt zeitgemäß
  Mit Zitat antworten Zitat