Язык реализации тут не причём. Суть метода заключается в ручном разборе записей файловой системы и, используя информацию из FAT или MFT, собственно восстановлении файла(ов).
Добавлю: смысл в том, что при удалении файл не удаляется, а помечается как удалённый. Благодаря этому возможно пройтись по цепочке кластеров, записанной в файловой системе, и либо пометить их как не удалённые, либо просто перенести в новый файл. Операция возможна, пока поверх файла ничего не записывалось.
Google: FAT, NTFS.