Bonjour
J'utilise le code suivant pour ouvrir un fichier zip auquel je vais rajouter dedans un fichier de mon cru afin de finaliser un document odt.
Le code suivant génère le chemin de l'origine (affichage) et celui de l'arrivée (aff).
Le problème, c'est que je dois déplacer le fichier avant de le transformer (en gros, un fichier temporaire, même s'il a déjà le nom final). J'aurais aimé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 sprintf(affichage,"%s%cLibO%cfeuille.zip",tmp1,SEPARATEUR,SEPARATEUR); sprintf(aff,"%s%c%s.odt",((char **)param)[CHEMIN],SEPARATEUR,((char **)param)[NOM]); copie_fichier(aff,affichage); f_zip=zip_open(aff,ZIP_CREATE,NULL);
1) Ouvrir le fichier d'origine (affichage)
2) Dire que le résultat final, il faudra le sauver sous aff
Comme ça, je supprime la première copie dans le fichier qu'on peut considérer temporaire.
Pour info la suite et la fin du travail sur l'archive :nb : fichier a été ouvert par un tmpfile().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 n_zip=zip_source_filep(f_zip,fichier,0,0); /* récupération du fichier sous forme FILE * sans avoir à le copier sur le disque */ zip_replace(f_zip,zip_name_locate(f_zip,"content.xml",ZIP_FL_NOCASE) ,n_zip); /* on l'injecte dans l'archive en lui donnant un nom */ zip_close(f_zip); /* on ferme l'archive */
Partager