Quando os arquivos são excluídos dependendo do sistema de arquivos, eles permanecem como metadados, mas os blocos de dados reais usados pelo arquivo são marcados como livres. Durante o tempo após o qual o arquivo foi excluído, qualquer outra operação de arquivo pode reutilizar esses blocos e gravar lá. Quando você inicia o programa que "undeletes" arquivos, ele basicamente remontará o arquivo dos blocos que ele usou antes da exclusão, procurando os metadados disponíveis. O arquivo pode parecer correto, mas não há garantia de que o conteúdo será o mesmo que o original, já que alguns dos blocos podem ter sido temporariamente usados por outros arquivos e liberados novamente. A única maneira de garantir uma restauração limpa é se não houver outras operações de arquivo após a exclusão. Em outras palavras, imediatamente depois que você excluiu o arquivo. Mesmo nesse caso, seu sucesso pode variar conforme os sistemas operacionais atuais criam e removem constantemente arquivos temporários, trocas e outros dados.
Geralmente, quando você restaura arquivos depois de algum tempo, eles terão partes do original e partes que foram perdidas / alteradas.