En principio no se borra el archivo si no el puntero que apunta a la estructura de datos q contiene los datos del archivo. No tocoa los datos, solo libera o apunta a NULL el puntero de la estructura que contiene los datos de un determinado archivo (Cualquiera que sepa utilizar listas enlazadas en C ya lo habrá entendido asique puede dejar de leer)
Sigamos con una explicación mas de andar por casa por si alguien no lo pilla todavia. A grandes rasgos, el sistema de ficheros FAT se compone de dos "cosas":
- Un sitio en el que se guardan el
nombre del archivo (pequeño)
- Un sitio en el que se guardan los
datos del archivo (grande)
Cuando eliminamos un archivo en FAT lo que hacemos es borrar el
nombre que se borra mas rápido por ser mas pequeño, pero no tocamos los
datos hasta que por falta de espacio se sobrescriben. Es decir, los datos siguen ahí aunque no veamos el archivo y se recuperan con herramientas como esta.
Si alguien necesita una explicación mas detallada la puede encontrar aquí:
http://es.wikipedia.org/wiki/FAT