ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Jue 02 Abr, 2009 2:06 pm Asunto: ZipUtils ++ |
|
|
hola amigos
estoy trabajando con los ziputils con el siguiente codigo
| Código: | para comprimir
String fileto,file,filezip;
if (OpenDialog1->Execute())
{
if (FileExists(OpenDialog1->FileName))
fileto=OpenDialog1->FileName;
file= ChangeFileExt(OpenDialog1->FileName,"");
filezip=file + ".zip";
}
HZIP hz;
// Crea el fichero zip
hz = CreateZip(filezip.t_str(), 0,ZIP_FILENAME);
ZipAdd(hz,fileto.t_str(),fileto.t_str(),0,ZIP_FILENAME);
CloseZip(hz); |
| Código: | para descomprimir
HZIP hz;
AnsiString filezip;
if (OpenDialog1->Execute())
{
if (FileExists(OpenDialog1->FileName))
Screen->Cursor = crHourGlass;
filezip = OpenDialog1->FileName;
hz = OpenZip(filezip.c_str(),0,ZIP_FILENAME);
ZIPENTRY ze; GetZipItem(hz,-1,&ze);
int numitems = ze.index;
for (int i=0; i<numitems>ProcessMessages();
ProgressBar1->Min = 0;
ProgressBar1->Min = numitems;
ProgressBar1->Position = i;
GetZipItem(hz,i,&ze);
UnzipItem(hz,i, ze.name,0,ZIP_FILENAME);
}
CloseZip(hz);
Screen->Cursor = crDefault;
} |
ahora los errores que he tenido con ese codigo son :
1-No compacta mas de un fichero aunque el OpenDialog este en multiselect
2-No compacta carpetas, si por el opendialog elijo una carpeta esta se abre y debo escoger los ficheros que hay dentro (esto se deriba del error anterior)
3-He compactado con winrar y cuando tratao de descompactar con el codigo antes expuesto me da error
los amigos del foro que ya han trabajado con ziputils me oueden decir algo al respecto ?
gracias  _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Jue 02 Abr, 2009 3:08 pm Asunto: |
|
|
Viendo tu código, no pasas nada mas que un archivo a la función ZipAdd, por lo que no esperes comprimir nada mas.
Deberás diseñar un bucle para añadir archivo por archivo como te insinuó Angel aquí.
Saludos. |
|