j'ai essayé de décompresser un fichier binaire à un membuf à partir d'une archive zip en utilisant Zip Lucian Wischik utils:EOF incorrect lors décompressé fichier binaire
http://www.wischik.com/lu/programmer/zip_utils.html
http://www.codeproject.com/KB/files/zip_utils.aspx
FindZipItem(hz, filename.c_str(), true, &j, &ze);
char *content = new char[ze.unc_size];
UnzipItem(hz, j, content, ze.unc_size);
delete[] content;
Mais il n » ai pas t décompressez le fichier correctement. Il s'est arrêté au premier 0x00
du fichier. Par exemple quand je décompresse un fichier MP3 dans une archive ZIP, il ne décompresse que les 4 premiers octets: 0x49443303
(ID3 \ 0) car le 5ème au 8ème octet est 0x00
.
J'ai également essayé de capturer le ZR_RESULT
, et il retourne toujours ZR_OK
(ce qui signifie terminé sans erreurs).
Je pense que ce gars-là avait aussi le même problème, mais personne ne répondit à sa question:
http://www.codeproject.com/KB/files/zip_utils.aspx?msg=2876222#xx2876222xx
Toute aide serait appréciée :)
Je veux dire un fichier MP3 dans une archive ZIP :) et non seulement MP3, d'autres types de fichiers binaires, ainsi que des images, et je sais que seulement décompresser les 4 premiers octets (parce que les 4 octets suivants sont 0x00), est en le déboguant, et voir la valeur du tampon lorsque la commande unzip se termine. (J'utilise VC++ 2008 Express) –