Saber se um arquivo compactado com zLib está normal.
29/05/2008
0
Boa tarde a todos.
Uso o seguinte algorítimo(peguei exemplo da net) para compactar arquivos :
A minha dúvida é como fazer para testar se o arquivo compactado está normal(não está corrompido)? já pensou se eu preciso voltar o sistema apartir dos arquivos compactados e na hora H vejo que não tenho exatamente nada para voltar ?
A segunda dúvida é como se comportará o código acima quando for uma base extremamente grande ? poderá comprometer o funcionamento do pc em função de está sendo executado na memória ram ? se for, o que posso fazer ?
Se puderem me auxiliar, agradeço muito pois nem sei por onde começar.
[]´s
Uso o seguinte algorítimo(peguei exemplo da net) para compactar arquivos :
var FileInName: TFileName; FileIn, FileOut: TFileStream; Zip: TCompressionStream; NumArquivos, I, Len, Size: Integer; Fim: Byte; begin FileOut := TFileStream.Create(FileOutName, fmCreate or fmShareExclusive); Zip := TCompressionStream.Create( clMax, FileOut); NumArquivos := Length(Files); Zip.Write(NumArquivos, SizeOf(Integer)); try for I := Low(Files) to High(Files) do begin FileIn := TFileStream.Create(Files[I], fmOpenRead and fmShareExclusive); try FileInName := ExtractFileName(Files[I]); Len := Length(FileInName); Zip.Write(Len, SizeOf(Integer)); Zip.Write(FileInName[1], Len); Size := FileIn.Size; Zip.Write(Size, SizeOf(Integer)); Zip.CopyFrom(FileIn, FileIn.Size); Fim := 0; Zip.Write(Fim, SizeOf(Byte)); finally FileIn.Free; end; end; finally Zip.Free; FileOut.Free; end; end;
A minha dúvida é como fazer para testar se o arquivo compactado está normal(não está corrompido)? já pensou se eu preciso voltar o sistema apartir dos arquivos compactados e na hora H vejo que não tenho exatamente nada para voltar ?
A segunda dúvida é como se comportará o código acima quando for uma base extremamente grande ? poderá comprometer o funcionamento do pc em função de está sendo executado na memória ram ? se for, o que posso fazer ?
Se puderem me auxiliar, agradeço muito pois nem sei por onde começar.
[]´s
Junior Miranda
Curtir tópico
+ 0
Responder
Posts
30/05/2008
Eniorm
uma vez testei o zLib e o que me fez desistir foi que eu não conseguia, por exemplo, compactar vários arquivos num mesmo pacote compactado. (talvez até tenha mas na época eu não achei informações sobre isso)
[b:e5aa351a06][i:e5aa351a06]A MELHOR FORMA SE SABER SE ESTÁ CORROMPIDO OU NÃO É TESTAR DESCOMPACTAR[/i:e5aa351a06][/b:e5aa351a06]
o mesmo vale para backups, vc tem que restaurar pra saber...
então vc teria que descompactar e testar se ocorreu tudo certo.
vou dar meu exemplo atual de uso sem o zLib
num programa de backup, primeiro eu compacto tudo com o WinRAR executando-o pela linha de comando, onde os arquivos e pastas a serem compactados estão contidos num arquivo texto
depois de compactado tenho a opção para enviar esse pacote para o CD.
como o WinRAR é pago (e eu o uso graças ao romário), irei mudar para ao invés de usar o winrar, usar o 7-Zip que compacta no formato LZMA (alta compactação) e é totalmente free.
[b:e5aa351a06][i:e5aa351a06]A MELHOR FORMA SE SABER SE ESTÁ CORROMPIDO OU NÃO É TESTAR DESCOMPACTAR[/i:e5aa351a06][/b:e5aa351a06]
o mesmo vale para backups, vc tem que restaurar pra saber...
então vc teria que descompactar e testar se ocorreu tudo certo.
vou dar meu exemplo atual de uso sem o zLib
num programa de backup, primeiro eu compacto tudo com o WinRAR executando-o pela linha de comando, onde os arquivos e pastas a serem compactados estão contidos num arquivo texto
depois de compactado tenho a opção para enviar esse pacote para o CD.
como o WinRAR é pago (e eu o uso graças ao romário), irei mudar para ao invés de usar o winrar, usar o 7-Zip que compacta no formato LZMA (alta compactação) e é totalmente free.
Responder
Clique aqui para fazer login e interagir na Comunidade :)