Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Dateien mit Maske filtern (https://www.delphipraxis.net/160773-dateien-mit-maske-filtern.html)

blablab 31. Mai 2011 06:58

Dateien mit Maske filtern
 
Hallo!

Ich lese Dateien mit FindFirstFile und FindNextFile ein. Mein Problem ist nun, dass ich 1) nur die Dateien, die zu einer bestimmten Maske passen, brauche (z.B *.* oder *.jpg) und 2) ermitteln möchte wie viele Dateien sich insgesamt im Ordner befinden (alle Dateien, auch versteckte und Systemdateien usw.).

Meine erste Idee war, einfach zweimal FindFirstFile und FindNextFile zu benutzen. Das erste mal mit dem Filter * und das nächste Mal mit dem vorgegebenen Filter. Das Problem ist nur, das dauert fast doppelt so lange, dabei erhalte ich beim ersten Durchgang ja schon alle Dateien die ich brauche. Ich muss nur selbst entscheiden, ob die zu meiner vorgegebenen Maske passen. Wenn ich also FindFirstFile und FindNextFile mit dem Filter * benutze und dann selbst ermittle ob die jeweilige Datei zu meiner Maske passt, dann könnte ich das ganze beschleunigen. Die Frage ist nur, wie kann ich schauen, ob ein bestimmter Dateiname zu einer bestimmten Maske passt.
Und am liebsten wäre es mir, wenn es dazu eine Windows-Funktion geben würde...

Vielen Dank schonmal!
Grüße
blablab

DeddyH 31. Mai 2011 07:09

AW: Dateien mit Maske filtern
 
Schau mal hier: http://www.delphipraxis.net/159690-d...rgleichen.html

blablab 31. Mai 2011 08:10

AW: Dateien mit Maske filtern
 
also irgendwie find ich gar nichts zu PathMatchSpec. In welcher Unit ist das zu finden? Oder gibts das in Delphi7 noch nicht?

himitsu 31. Mai 2011 08:26

AW: Dateien mit Maske filtern
 
Nicht alle APIs sind schon vorhanden ... Einiges muß man halt selber implementieren, oder man nutzt sowas wie die JCL, wo mehr enthalten ist.


Ansonsten kannst'e auch mehrmals Suchen, einmal mit '*.*' und dann nochmal mit '.jpg', :wink:
wenn dich die paar Millisekunden nicht stören, welche für das doppelte Einlesen draufgehn.

DeddyH 31. Mai 2011 08:36

AW: Dateien mit Maske filtern
 
Ein kurze DP-Suche (ja, so etwas gibt es):
http://www.delphipraxis.net/306753-post3.html

blablab 31. Mai 2011 19:37

AW: Dateien mit Maske filtern
 
Vielen Dank für die Antworten!

Ich hatte das sogar schon mal selbst programmiert. Mir gings eigentlich hauptsächlich darum, dass es mit dem Windows-Standard übereinstimmt. Aber da es da nichts gescheites gibt, nehm ich jetzt meins...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz