Это зависит от версии вашего компилятора. Если вы используете Delphi 2010, самый простой код, который я могу придумать, это:
uses IOUtils, Types;
function GetSubDirCount(const Path: string): Cardinal;
var
StrArray : TStringDynArray;
begin
StrArray := TDirectory.GetDirectories(Path,'*',IOUtils.TSearchOption.soAllDirectories);
Result := Length(StrArray);
end;