Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   TZipFile en Builder XE3 (https://www.clubdelphi.com/foros/showthread.php?t=88076)

Angel.Matilla 09-04-2015 11:11:29

TZipFile en Builder XE3
 
A partir del código que hay en Clase TZipFile, para comprimir y descomprimir archivos he probado a adaptarlo para Builder. Me ha quedado esto:
Código:

TZipFile *fZip = new TZipFile();
fZip->Open(Entorno->Strings[2] + "\\CopiaZip.zip", zmWrite);

FileList->Items->Clear();
FileList->Mask = "C:\\DatAfi21\\Tablas\\*.*";

for (int nItem = 0; nItem < FileList->Items->Count; nItem ++)
    fZip->Add(Entorno->Strings[2] + "\\" + FileList->Items->Strings[nItem], FileList->Items->Strings[nItem], zcDeflate);

fZip->Close();
fZip->Free();

Quiero hacer una copia de una carpeta que tiene un total de 87 archivos (tablas Paradox e índices) como paso previo a una conversión de tablas. Empieza bien, pero cuando llega por el octavo o noveno fichero me da este error:

Nunca repite el sitio y en ningún momento cierro el fichero de destino. He probado dos variaciones de ese código:
Código:

for (int nItem = 0; nItem < FileList->Items->Count; nItem ++)
{
      fZip->Open(Entorno->Strings[2] + "\\CopiaZip.zip", zmWrite);
      fZip->Add(Entorno->Strings[2] + "\\" +  FileList->Items->Strings[nItem],  FileList->Items->Strings[nItem], zcDeflate);
      fZip->Close();
}

En este caso se ejecuta sin error, me aparece un fichero comprimido que por tamaño debería contener toda la carpeta pero si lo abro con WinRar sólo hay un fichero, el último de la carpeta.
Código:

for (int nItem = 0; nItem < FileList->Items->Count; nItem ++)
{
      fZip->Open(Entorno->Strings[2] + "\\CopiaZip.zip", zmReadWrite);
      fZip->Add(Entorno->Strings[2] + "\\" +  FileList->Items->Strings[nItem],  FileList->Items->Strings[nItem], zcDeflate);
      fZip->Close();
}

En este caso en el primer intento me da este mensaje:


La franja horaria es GMT +2. Ahora son las 12:53:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi