Se a corrupção não se espalhou muito, então seus arquivos JPEG estão agora marcados como diretórios (e tão irrecuperáveis por ferramentas normais de undeletion / recovery, que os recuperariam como diretórios ou, pior ainda, acreditam que eles sejam muito corruptos e os eliminam permanentemente), mas os dados de imagem ainda estão lá.
A recuperação não é garantida e não é rápida. Você precisa acessar a unidade portátil no modo de dispositivo, ou seja, como se fosse um único arquivo muito grande. No Linux você faria isso dd
'ing seu conteúdo para um novo arquivo na unidade fixa (desde que haja espaço suficiente). Existe um utilitário no Windows chamado WinDD que pode ajudá-lo.
Neste ponto, você precisa fazer uma grande suposição - de que seus arquivos JPEG foram armazenados como blocos de dados contíguos (ou seja, desfragmentados). Se isso for válido, o arquivo grande que é o conteúdo da unidade portátil será:
<garbage><garbage><valid JPEG header><valid SOI chunk>....<valid EOI chunk><garbage>...
e um scanner de arquivos poderá começar a salvar os dados assim que o cabeçalho JPEG válido for encontrado, e continuará até que o bloco Fim de Imagem seja encontrado. Os blocos assim extraídos compõem um arquivo JPEG válido, pelo qual você perdeu o nome, mas isso é um obstáculo menor, eu acho.
Existem utilitários (parece-me que me lembro de "SDrecover"?) concebidos para recuperar dados de cartões SD ilegíveis . Claro que não estão limitados a cartões SD (a menos que exijam um formato FAT32 / exFAT no dispositivo, o que é um pedido estúpido). Eles funcionam da mesma maneira, lendo sequencialmente a unidade, ignorando tudo o que não sabem ler e tentando extrair fluxos de imagem válidos. Alguns deles são capazes de "fazer malabarismos" com os pedaços de imagem JPEG válidos que encontram e, assim, recuperam até arquivos fragmentados. Mas a chave para a recuperação é
- não escreva mais nada na unidade
- não executa nenhum utilitário de "correção de disco"
- se possível, faça uma imagem "clone" do disco
- se possível, trabalhe no clone, não no original
- use a ferramenta apropriada
Você pode encontrar outras ferramentas (freeware, até mesmo) pesquisando por "recuperação de JPEG a partir do cartão SD danificado" e seus sinônimos. Eu até tenho um código-fonte C testado em Linux, caso você se sinta aventureiro e esteja confortável com a compilação.