Einzelnen Beitrag anzeigen

Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: FindFirstFileEx

  Alt 3. Jul 2011, 04:57
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).
Nr.1 Delphi-Tool: [F7]

Geändert von ConnorMcLeod ( 3. Jul 2011 um 06:40 Uhr) Grund: Textergänzung
  Mit Zitat antworten Zitat