find excluding a directory and a file

Hi

I have some 5 folders and two files in the current directory.
I want to delete all, expect one folder(files in the folder too should not be deleted) and a file in the current directory. Lets say the folder and file that should not be deleted as 'a'(folder name) and 'b'(file name). Can you please give me the find command with delete

Thanks in advance
Ammu

ksh:

rm -r !(a|b)

bash:

shopt -s extglob
rm -r !(a|b)

zsh:

rm -r ^(a|b)