Du solltest nicht auf "file = faDirectory" prüfen. Wenn dort noch andere Attribute gesetzt sind, ergibt dieser Vergleich False.
Besser ist es, auf bestimmte Attribute mit AND zu prüfen.
Delphi-Quellcode:
FindResult := FindFirst(Dir + '*.szf', faAnyFile, SearchRec);
while FindResult = 0 do
begin
[..]
Attr := '';
if (SearchRec.Attr and SysUtils.faReadOnly) <> 0 then // auch: ) = faReadOnly
Attr := 'R';
if (SearchRec.Attr and faHidden) <> 0 then // auch: ) = faHidden
Attr := Attr + 'H';
if (SearchRec.Attr and faSysFile) <> 0 then // auch: ) = faSysFile
Attr := Attr + 'S';
if (SearchRec.Attr and faArchive) <> 0 then // auch: ) = faArchive
Attr := Attr + 'A';
ListItem.SubItems.Add(Attr);
FindResult := FindNext(SearchRec);
end;
FindClose(SearchRec);
Code:
Attribut, z.B. 11001101
AND fa... z.B. 01001000
Ergebnis: 01001000
mfg
Michael