AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FindFirstFileEx

Ein Thema von Schwedenbitter · begonnen am 25. Mai 2011 · letzter Beitrag vom 3. Jul 2011
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#1

AW: FindFirstFileEx

  Alt 2. Jul 2011, 20:03
In neueren Windows (ich glaub ab Vista oder 7) wird standardmäßig erstmal kein Kurzname mehr erstellt (solange er nicht benötigt oder gezielt erstellt wurde) ... so hat man in Zukunft (vorallem wenn es mal keine ANSI-Programme mehr gibt) endlich Ruhe mit den Kurznahmen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

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

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
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: FindFirstFileEx

  Alt 3. Jul 2011, 09:59
Für wen es interessiert ...
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).
Das ist auch meine Erfahrung, weshalb ich damit rumexperimentiert hatte. Braucht es das ExtractFileName wirklich?
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

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

AW: FindFirstFileEx

  Alt 3. Jul 2011, 11:19
Danke für den Hinweis, ExtractFileName ist nicht notwendig. Da hatte ich beim Ausprobieren wohl den Mauszeiger über der verkehrten Variable :-/ wo ich den kompletten Pfad gesehen habe. Juchu, wieder ein paar CPU-Zyklen gespart!
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz