Удалить все файлы и папки рекурсивно с помощью Delphi

Я пытаюсь рекурсивно удалить папку и все ее подпапки, но она вообще не работает, так что, может, кто-нибудь проверит код и скажет, что я делаю здесь неправильно?

Я запускаю этот код через D7 под Windows XP

if FindFirst (FolderPath + '\*', faAnyFile, f) = 0 then
      try             
         repeat

            if (f.Attr and faDirectory) <> 0 then
              begin
                    if (f.Name <> '.') and (f.Name <> '..') then
                      begin                            
                        RemoveDir(FolderPath +'\'+ f.Name);
                      end
                    else
                      begin
                        //Call function recursively...
                        ClearFolder(FolderPath +'\'+ f.Name, mask, recursive);
                      end;
              end;

         until (FindNext (f) <> 0);
      finally
        SysUtils.FindClose (f)
      end;
end;

Ответы на вопрос(2)

Ваш ответ на вопрос