Depende. TM Da TechNet , ênfase minha:
NTFS uses transaction logging and recovery to guarantee that the volume structure is not corrupted.
Em teoria, o NTFS garante que toda a atualização da estrutura do volume estará no disco ou nenhuma atualização será feita. Portanto, uma dessas duas coisas será o caso após a energia voltar:
- O arquivo tem o tamanho antigo e seus novos dados estão ausentes
- O arquivo tem seu novo tamanho e seus novos dados são ... oh wait
O objetivo do registro no diário do NTFS é garantir que a contabilidade e os metadados não sejam demolidos, caso uma mudança esteja em andamento quando a energia for perdida. Isso é feito com o diário de alterações . (Eu ouvi anedotas de setores defeituosos aparecendo após falhas de energia, mas não consigo encontrar nenhuma fonte oficial para confirmar que tais coisas acontecem.)
Os dados do usuário, no entanto, nem sempre são escritos quando você pensa, especialmente na presença de gravação em cache . Mesmo assim, nesse caso, seu volume está bom e nada de ruim terá acontecido com os dados existentes, já que ele não foi atualizado.
Dito isto, se o seu aplicativo de download não foi projetado para lidar com situações como essa, é totalmente possível que o arquivo tenha sido expandido, mas a nova parte preenchida com zeros. Se o aplicativo atualizar vários locais, qualquer cache de gravação do SO invalida as suposições que você pode fazer quando os dados do usuário são gravados. ( FILE_FLAG_WRITE_THROUGH
pode ajudar, mas mesmo isso pode ser ignorado se o desempenho avançado está ativado .)