Acredito que no começo você pode acabar utilizando Python, porém, para deixar algo leve, pode ser utilizado C++ ou C#.
Sobre o sistema de recuperar arquivos, muito das vezes, o programa simplesmente vai no %temp% do windows e verifica algum resíduo do arquivo.