Verificação Automatizada de Arquivos de Arquivamento Corrompidos

0

Eu tenho todos os tipos de arquivos que eu baixei de todos os lugares ao longo dos anos, espalhados pelos meus discos rígidos. Eu estou no processo de tentar organizar todos eles e ter um problema. Às vezes, um arquivo não foi baixado corretamente (isso foi um grande problema quando o Chromium apareceu pela primeira vez) e, portanto, está corrompido. Para arquivos de mídia, isso é may seja simples de determinar (requer realmente abrir e examinar o arquivo). Para executáveis ou outros binários, é relativamente difícil (executáveis podem ou não falhar, outros binários podem ser completamente desconhecidos). Arquivos arquivados (por exemplo, ZIP, RAR, 7Z, EXE, ACE, etc.) devem ser bem simples, eles têm um recurso de detecção de corrupção embutido.

Meu problema agora é que eu realmente não quero abrir e testar todos os arquivos arquivados em meu disco. Isso seria um pesadelo. Estou à procura de um utilitário que possa automatizar o processo.

Existe um programa que pode digitalizar arquivos de arquivo em uma unidade e listar os que estão corrompidos? Idealmente, seria capaz de levar plugins para que ele pudesse suportar tipos de arquivos adicionais e menos comuns, como LHA, UHA, ARJ, etc.

    
por Synetech 04.12.2009 / 02:32

2 respostas

1

Se você obtiver a versão de linha de comando do 7-Zip ( 7za.exe ) e colocá-la em algum lugar no caminho do sistema (como C:\Windows ), o seguinte script poderá funcionar como uma linha de base:

@echo off
set DownloadPath=C:\Path\To\Downloaded\Stuff
set ErrorReport=C:\Path\To\BadFiles.txt
pushd %DownloadPath%
for /r %%i in (*.7z;*.zip;*.cab;*.rar;*.ace) do (
    7za.exe t "%%i"
    if ERRORLEVEL 1 echo %%i>>%ErrorReport%
)
popd

Copie e cole o texto acima em um arquivo .cmd , certificando-se de modificar as linhas set DownloadPath= e set ErrorReport= para apontar para algum lugar válido. O arquivo ErrorReport será criado se não existir e será anexado, se já existir. Assim, você pode executar o script uma vez, modificar DownloadPath e executá-lo novamente sem perder seus resultados anteriores.

Se quiser apenas verificar todos os arquivos sem restringir as extensões, você pode substituir o *.7z;*.zip... por * , então a linha for seria: for /r %%i in (*) do (

    
por 30.04.2010 / 19:13
0

O programa para escanear arquivos archive em um disco (e eu presumo que você queira dizer o zip, rar, 7z, exe, ace, e os curtos) é chamado script .

Você pode usar o 7-zip para test de cada arquivo em um loop que procura todos os arquivos mortos. Você ainda precisará esperar que o test seja executado em cada arquivo - então, a única coisa que você salvou é o trabalho do burro real de testar cada um individualmente.

Como Molly comentou, o jeito certo de armazenar arquivos é manter uma soma MD5 junto com o arquivo. Muitas vezes você também aprende com os arquivos executáveis que você baixar. Se você começar a manter as somas MD5 (ou quaisquer outras somas de verificação) com os arquivos, a verificação seria uma questão de recalcular a soma MD5 e comparar com o valor armazenado. Isso será consideravelmente mais rápido do que um teste de arquivamento (o MD5 é conhecido por ser rápido).

    
por 04.12.2009 / 02:59