Für wen es interessiert ... ich habe es dzt so gelöst:
Delphi-Quellcode:
lhFoundFile := THandle(
Windows.FindFirstFileEx(
PWideChar(inPath + lsFileMask)
, lIndexInfoLevels
, lfdStruct
, lIndexSearchOps
, nil
, ldwAdditionalFlags
)
);
if (lhFoundFile <> INVALID_HANDLE_VALUE) then
begin
repeat
lsFileNameOnly := ExtractFileName(string(lfdStruct.cFileName));
if (0 = (lfdStruct.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY))
and CompareWildString(UpperCase(lsFileMask), UpperCase(lsFileNameOnly)) // <= das ist der Trick
then
begin
// gefunden!
end;
until not Windows.FindNextFile(lhFoundFile, lfdStruct^);
end;
Windows.FindClose(lhFoundFile);
CompareWildString ist aus der CodeLib, himitsu's Variante war mir zuviel Aufwand hier.
Der Witz an FindFirstFileEx ist, dass es (scheinbar) x-fach schneller als FindFirst ist. Daher möchte ich es unbedingt verwenden. (Wobei der hier gefixte Fehler auch bei FindFirst auftritt).