@Christian Seehase
nein das ist so richtig weil sr.name ist ja ein string und strings fangen von eins an zu zählen
also ist sr.name[1] das erste zeichen und sobalt da ein .. oder . wird es ausgelassen.
Amask ist so aufgebaut .ext.ext.ext.
ich habe es jetzt so geändert alledings kommt immer noch ein fehler: verzeichnise die keine der gewünschten dateien enthalten werden trozdem mitbeachtet:
Delphi-Quellcode:
function GetFilesInDirectory(ADirectory: string; AMask: String; ARekursiv: Boolean; var ok:Boolean ):Boolean;
var
SR: TSearchRec;
ok1:Boolean;
begin
ok1:=ok;
if (ADirectory<>'') and (ADirectory[length(ADirectory)]<>'\') then ADirectory:=ADirectory+'\';
if (FindFirst(ADirectory,faAnyFile ,SR)=0) then begin
repeat
if (SR.Name[1]<>'.') and ((sr.Attr or faAnyFile) = faAnyFile) and (pos(UpperCase(ExtractFileExt(sr.name)),AMask) > 0)then
ok1:=true;
until (ok1 ) or (FindNext(SR)<>0);
FindClose(SR);
end;
if ARekursiv then
if (FindFirst(ADirectory+'*.',faDirectory,SR)=0) then
begin
repeat
if (SR.Name[1]<>'.') and (sr.attr and faDirectory > faDirectory) then begin
ok1:=False;
GetFilesInDirectory(ADirectory+SR.Name,AMask,True,ok1);
end;
until FindNext(SR)<>0;
FindClose(SR);
end;
result:=ok1;
end;