Eliminar subcarpetas excepto algunas de ellas
Tengo un directorio del que cuelgan algunos archivos y varios subdirectorios. Algo de este estilo:
Subdirectorio1
archivos del subdirectorio1
SUBDIRECTORIO2
archivos del subdirectorio2
SUBDIRECTORIO3
archivos del subdirectorio3
...
Subdirectorio8
archivos del subdirectorio8
ARCHIVO1
ARCHIVO2
ARCHIVO3
Lo que quisiera es programar un botón para que por una parte eliminara todos los subdirectorios (y archivos y subdirectorios que colgaran de ellos) excepto 3 (siempre van a ser los mismos los 3 que se mantengan) y por otra no eliminara ninguno de los archivos que no cuelgan de ningún subdirectorio.
Como es un poco complicado el explicarlo, la idea es que siguiendo con el ejemplo, cada vez que se pulsara el botón sólo se mantuvieran únicamente el SUBDIRECTORIO3 (y sus archivos), el SUBDIRECTORIO5 (y sus archivos) y el SUBDIRECTORIO 7 (y sus archivos), además de los archivos ARCHIVO1, ARCHIVO2 y ARCIVO3, eliminándose el resto de subdirectorios.
Los nombres de los subdirectorios a eliminar varían cada vez.
¿Podríais ayudarme y decirme si es posible?