Плохо, что по маске не умеет каталоги искать. А в остальном все просто.
program alldirs; uses Classes, SysUtils, FileUtil; var lstDirs:TStringList; i: Integer; begin lstDirs := TStringList.Create; FindAllDirectories(lstDirs,'C:\Windows',true); i:=0; while i < lstDirs.Count do begin WriteLn(lstDirs[i]); inc(i); end; WriteLn ('Found: ',lstDirs.Count); WriteLn ('Press Enter'); lstDirs.Free(); ReadLn(); end.