diff options
Diffstat (limited to 'dateibeziehungen.pas')
-rw-r--r-- | dateibeziehungen.pas | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/dateibeziehungen.pas b/dateibeziehungen.pas index f7fb94a..4fb444f 100644 --- a/dateibeziehungen.pas +++ b/dateibeziehungen.pas @@ -924,19 +924,30 @@ var sR: tSearchRec; err,i: longint; weglassen: boolean; + rest: string; begin result:=0; - err:=findFirst(wo,fareadOnly or faHidden or faSysFile or (byte(rekursiv)*faDirectory),sR); + rest:=''; + if pos('*',wo)>0 then begin // wir müssen globben + rest:=wo; + erstesArgument(rest,'*',false); + erstesArgument(rest,'/',false); + if rest<>'' then + delete(wo,length(wo)-length(rest),length(rest)+1); + end; + if (rest='') and rekursiv then // rekursive Suche angefordert + rest:='*'; + err:=findFirst(wo,fareadOnly or faHidden or faSysFile or (byte(rest<>'')*faDirectory),sR); while err=0 do begin weglassen:=false; for i:=0 to length(_ign)-1 do weglassen:=weglassen or _ign[i].exec(extractFilePath(wo)+sR.name); if not weglassen then begin if sR.attr and faDirectory <> 0 then begin - if rekursiv and + if (rest<>'') and (sR.name<>'.') and (sR.name<>'..') then - result:=result+sammleDateien(extractFilePath(wo)+sR.name+'/*',rekursiv); + result:=result+sammleDateien(extractFilePath(wo)+sR.name+'/'+rest,rekursiv); end else begin inc(result); |