Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Prüfen ob ein verzeichnis die gewünschte erweiterungen h

  Alt 15. Okt 2006, 14: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
  Mit Zitat antworten Zitat