Hallo,
in einem aktuellen Projekt muss ich prüfen ob es in den verzeichnisen bestimmte erweiterungen gibt oder nicht....
ich habe es zurerst so versucht
Delphi-Quellcode:
function GetAnderItem(dir:String;extList:String):Boolean;
var
sr:TSearchRec;
ok:Boolean;
begin
OK := False;
if FindFirst(Dir+'*.*', $23,SR) = 0 then begin
repeat
// Der Eintrag darv kein . oder .. sein und muss in der liste stehen dann ok auf True
if (sr.Name[1] <> '.') and (pos(UpperCase(ExtractFileExt(sr.name)),extlist) > 0) then begin
ok:=True;
result:=ok;
end;
until ok or (FindNext(sr) <> 0);
end;
GetPreviousDirectory
if (FindFirst(Dir+'*', faDirectory,SR) = 0) then begin
repeat
if (sr.Name[1] <> '.') and ((sr.Attr and faDirectory) = faDirectory) then
GetAnderItem(dir+sr.name+'\',extlist);
until FindNext(sr) <> 0;
FindClose(sr);
end;
result:=ok;
// dieser code gibt auch immer nur false zurück
dann habe ich im internet einen code gefunden und ihn angepasst:
Delphi-Quellcode:
function GetFilesInDirectory(ADirectory: string; AMask: String; ARekursiv: Boolean;ok:Boolean = False):Boolean;
var
SR: TSearchRec;
begin
ok:=ok;
if (ADirectory<>'') and (ADirectory[length(ADirectory)]<>'\') then ADirectory:=ADirectory+'\';
if (FindFirst(ADirectory,faAnyFile-faDirectory,SR)=0) then begin
repeat
if (SR.Name[1]<>'.') and ((sr.Attr and faAnyFile) = faAnyFile) and (pos(UpperCase(ExtractFileExt(sr.name)),AMask) > 0)then
ok:=true;
until (ok ) or (FindNext(SR)<>0);
FindClose(SR);
end;
if ARekursiv then
if (FindFirst(ADirectory+'*.*',faDirectory,SR)=0) then
begin
repeat
if SR.Name[1]<>'.' then
GetFilesInDirectory(ADirectory+SR.Name,AMask,True,ok);
until FindNext(SR)<>0;
FindClose(SR);
end;
result:=ok;
end;
allerding gibt er immer nur false zurück
ich hoffe ihr könnte mir wie meistens weiter helfen.
Vielen dank im vorraus !