(Co-Admin)
Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
Delphi 11 Alexandria
|
Re: Prüfen ob ein verzeichnis die gewünschte erweiterungen h
15. Okt 2006, 15:07
Moin Michael,
erster Fehler:
if (sr.Name[1] <> '.')
es muss heissen:
if (sr.Name <> '.') and (sr.Name <> '..')
da es das Dateisystem durchaus erlaubt, dass ein Verzeichnis oder eine Datei mit . anfangen.
(in der Konsole, oder aus einem Programm heraus lässt sich das erzeugen, im Explorer nicht.)
Dann:
((sr.Attr and faAnyFile) = faAnyFile)
Wird niemals true, da faAnyFile eine Kombination aller möglicher Flags ist, ein Verzeichnis/eine Datei, aber niemals alle Flags enthalten können. (z.b.: Eine Datei kann nicht das Flag faDirectory haben, ein Verzeichnis nicht faReadOnly).
Hier
(pos(UpperCase(ExtractFileExt(sr.name)),AMask)
stellt sich mir die Frage, wie AMask aussieht. ExtractFileExt gibt .ext zurück (also mit .)
Hier
if (FindFirst(ADirectory,faAnyFile-faDirectory,SR)=0) then begin
bringt das faAnyFile-faDirectory nichts, da FindFirst nicht nach Attributen filtert.
[EDIT]
Ausserdem sollte man bei Bitfeldern wie dem Attribut keinesfalles + und - benutzen, sondern OR (statt +) bzw. AND NOT statt -
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
|