Einzelnen Beitrag anzeigen

Dawn87

Registriert seit: 15. Feb 2007
Ort: Lüdenscheid
189 Beiträge
 
Delphi XE5 Professional
 
#1

FindFirstFile: Mit Maske in Unterverzeichnissen suchen?

  Alt 25. Nov 2011, 10:05
Guten Morgen,

ich muss zurzeit folgende Aufgabe lösen:

Vom Anwender bekomme ich den Pfad zu einer Ordnerstruktur, die in den meisten Fällen auch Unterordner enthält. Irgendwo in dieser Struktur muss eine Datei von einem bestimmten Typ liegen, damit diese Auswahl von meiner Anwendung akzeptiert wird.

Die Überprüfung ob eine Datei von diesem Typ vorhanden ist, habe ich mit einer rekursiven Funktion die intern FindFirstFile und FindNextFile nutzt, implementiert. Das Funktioniert auch, solange auf der ersten Ordnernebene eine Datei vorhanden ist die der Dateimaske ("*.abc"), die ich FindFirstFile() übergeben habe, entspricht.

Wenn in einem Unterverzeichnis diese Datei vorhanden ist, liefert FindFirstFile den Wert INVALID_HANDLE_VALUE.

Eine Möglichkeit das Problem zu lösen, wäre als Dateimaske "*.*" anzugeben und die Suchergebnisse per ExtractFileExt() selbst zu filtern. Das dauert aber länger und ist von Codee-Estetik her eher keine Mona Lisa.

Mein Problem wäre auch gelöst, wenn FindFirstFile einfach nur die Unterordner zurückliefern würde, auch wenn keine Datei vorhanden ist. Ich kenne aber keine Möglichkeit die Funktion entsprechend zu parametisieren.

Für Lösungsvorschläge bin ich dankbar. Unter allen Antwortenden verlose ich ein paar Smilies!

Beste Grüße,
Stefan
  Mit Zitat antworten Zitat