Um amigo meu salvou um arquivo quando seu computador (um Mac) caiu. Ela assumiu que o arquivo foi salvo e não se preocupou muito com isso, mas agora ela viu que o tamanho do arquivo é de 0 bytes e o arquivo está vazio por razões óbvias.
Isso aconteceu há uma semana e ela realizou muitas operações de arquivos grandes até agora, então eu disse a ela que ela provavelmente não seria capaz de restaurá-lo, e na verdade ela já havia lidado com isso antes mesmo de eu contar a ela. .
No entanto, isso me faz pensar se existem ferramentas de administração (Windows, Mac ou UNIX) para modificar as propriedades de tamanho de arquivo, portanto o sistema de arquivos acredita que o arquivo é maior ou existe a possibilidade de ler vários bytes do disco iniciando no ponteiro do arquivo, desconsiderando seu tamanho de acordo com a tabela do sistema de arquivos?
Como o arquivo já estava salvo anteriormente e era um arquivo de texto simples (XML precisamente), imaginei que, ao falsificar um tamanho de arquivo maior, os bytes adjacentes do disco teriam sido interpretados como se pertencessem ao arquivo corrompido. Quando você abre o arquivo em um editor de texto simples, pelo menos uma parte do arquivo pode ter sido legível novamente, a menos que os clusters "livres" já tenham sido reivindicados por qualquer outro arquivo ou o arquivo tenha sido particionado ali mesmo. (N. B .: Se fosse possível, teríamos então copiado o arquivo para uma unidade USB e depois reduziríamos o tamanho novamente para resolver uma possível alocação duplicada desse espaço em disco.)
Como escrito acima, ela já lidou com refazer o trabalho, mas me pergunto se você pode realmente manipular a propriedade de tamanho de arquivo ou ler um número fixo de bytes ignorando as informações de "comprimento de dados válido" por qualquer meio. / p>
Eu tentei pesquisar no Google, mas o Google não parece entender o que eu quero fazer. A única coisa que encontrei foi fsutil file setvaliddata <file> <length>
para o Windows, mas isso não parece funcionar. Tentei modificar o tamanho de um arquivo de texto em um shell elevado, mas aparentemente qualquer outro valor para length
than 200 resulta em "Erro: parâmetro errado" quando 200 é o tamanho em bytes que meu arquivo original já tinha.
Eu também achei que tinha melhores chances para o OSX, uma vez que ele é semelhante ao UNIX, mas na verdade não encontrei mais nada para nenhum sistema operacional.