Bonjour

J'ai le code précédent qui marche sous Linux, mais pas sous windows.
Le problème, c'est que sous windows, il compile, s'exécute et ne fait RIEN ! Le fichier dont le chemin est ch est inchangé.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
        f_zip=zip_open(ch,ZIP_CREATE,NULL);
        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 */
        if (zip_close(f_zip)!=0)   /* on ferme l'archive */
        {
            printf("Erreur lors de la fermeture du fichier %s : %s\n",ch,zip_strerror(f_zip));
        }
        else
        { /* l'enregistrement c'est bien fait */
        }
Ceci m'envoie dans le " printf("Erreur lors de la fermeture du fichier %s : %s\n",ch,zip_strerror(f_zip));". L'erruer est "Renaming temporary file lailed: File existe".
Si je mets un point d'arrêt avant la sauvegarde et que je passe par le navigateur de fichier, je ne peux supprimer le fichier qui est déjà là : la version avant modification.

Je ne suis pas le premier à avoir ce problème : http://www.nih.at/listarchive/libzip.../msg00602.html

nb : Je modifie petit à petit...