function TMainForm.GetDirectoryName(Dir: String): String; begin if Dir[Length(Dir)]<> '\' then Result := Dir+'\' else Result := Dir; end;
procedure TMainForm.FindFiles(APath: String); var FSearchRec, DSearchRec: TSearchRec; FindResult: integer;
function IsDirNotation(ADirName: String): Boolean; begin Result := (ADirName = '.') or (ADirName = '..'); end;
begin APath := GetDirectoryName(APath); FindResult := FindFirst(APath+FFileName,faAnyFile+faHidden+ faSysFile+faReadOnly,FSearchRec); try while FindResult = 0 do begin FlatListBox1.Items.Add(LowerCase({APath+}FSearchRec.Name)); FindResult := FindNext(FSearchRec); end; FindResult := FindFirst(APath+'*.*', faDirectory, DSearchRec);
if FlatCheckBox1.Checked=True then begin while FindResult = 0 do begin if ((DSearchRec.Attr and faDirectory) = faDirectory) and not IsDirNotation(DSearchRec.Name) then FindFiles(APath+DSearchRec.Name); FindResult := FindNext(DSearchRec); end; end; finally FindClose(FSearchRec); end; end;
----------------------------------------------
-