Do meu jeito ficou mais simples (?) e mais legal.
https://www.youtube.com/watch?v=H_NsqFpH6BM
Não ficou mais lento não.
Se olharem o fonte, cada vez que rodo o teste pega a pasta inteira e cria um zip.
Significa que a cada teste tem a pasta + o ZIP novo, o dobro de antes.
Código: Selecionar todos
#include "inkey.ch"
#include "hbclass.ch"
#include "directry.ch"
PROCEDURE Main
LOCAL cFile, aList := {}, aFiles, bOutro, nTotal := 0, nAcumulado := 0, aFile
aFiles := Directory( "*.*" )
cFile := "copia_" + Dtos( Date() ) + SoNumeros( Time() ) + ".zip"
AEval( aFiles, { | e | AAdd( aList, e[ F_NAME ] ), nTotal += e[ F_SIZE ] } )
bOutro := { | a, b | MostraOutro(a,b,nAcumulado,nTotal ) }
SetMode(33,100)
SetColor( "W/B" )
CLS
Inkey(0)
GrafTempo3( "arquivo" )
GrafTempo( "total" )
FOR EACH aFile IN aFiles
GrafTempo2( "atual" )
Hb_ZIPFILE( cFile ,; // Carpeta destino de la copia de seguridad
aFile[F_NAME],; // Fichero o array a realizar el backup
Nil ,; // Prioridad maxima 9
Nil ,; // CodeBlog para refrescar oMeter y sistema
.T. ,; // Sobreescribir el fichero
Nil ,; // Password para encritar
Nil ,; // Guardar el path
Nil ,; // Guardar la unidad
bOutro ) // CodeBlock para progreso de archivos
GrafTempo3( aFile:__EnumIndex, Len( aFiles ) )
nAcumulado += aFiles[ aFile:__EnumIndex, F_SIZE ]
NEXT
Inkey(0)
RETURN
FUNCTION MostraOutro( a, b, nAcumulado, nTotal )
GrafTempo2( a, b )
GrafTempo( a + nAcumulado, nTotal )
RETURN Nil
Lá ele não usa o do processamento do zip, só o de quantidade de arquivos.
Se não fossem as anotações.....

