zip_file_replace |
ZIP : Remplace un fichier |
|---|---|
| libzip | |
Syntaxe
| int zip_file_replace(zip_t *archive, zip_uint64_t index, zip_source_t *source, zip_flags_t flags); |
Retour
Une fois l'opération terminée avec succès, zip_file_add() renvoie l'index du nouveau fichier dans l'archive et zip_file_replace() renvoie 0. Sinon, -1 est renvoyé et le code d'erreur dans l'archive est défini pour indiquer l'erreur.
Description
Cette fonction permet d'ajouter un fichier à l'archive ZIP ou remplace un fichier existant.
Remarques
- La fonction zip_file_add() ajoute un fichier à une archive zip, tandis que zip_file_replace() remplace un fichier existant dans une archive
zip. Le paramètre archive spécifie l'archive zip à laquelle le fichier doit être ajouté. name est le nom du fichier dans l'archive zip (pour
zip_file_add()), tandis qu'index spécifie quel fichier doit être remplacé (pour zip_file_replace()). Le paramètre flags peut être n'importe quelle
combinaison de ZIP_FL_OVERWRITE avec l'un des ZIP_FL_ENC_* :
Constante Description ZIP_FL_OVERWRITE Remplacer tout fichier existant du même nom. Uniquement pour zip_file_add. ZIP_FL_ENC_GUESS Deviner le codage du nom (par défaut). (Seuls CP-437 et UTF-8 sont reconnus.) ZIP_FL_ENC_UTF_8 Interpréter le nom comme UTF-8. ZIP_FL_ENC_CP437 Interpréter le nom comme page de code 437 (CP-437). Les données sont obtenues à partir du paramètre source, voir zip_source().
- zip_source_free() ne doit pas être appelé sur une source après avoir été utilisé avec succès dans un appel zip_file_add ou zip_file_replace.
- Veuillez également noter que lors de l'utilisation de zip_replace, les informations de champ supplémentaires du fichier cible seront supprimées car elles dépendent généralement du contenu du fichier. Si vous souhaitez les conserver, interrogez-les au préalable avec zip_file_extra_field_get() et restaurez-les après zip_replace avec zip_file_extra_field_set().
Erreurs
zip_file_add() et zip_file_replace() échouent si :
| Constante | Description |
|---|---|
| ZIP_ER_EXISTS | Il existe déjà un fichier appelé nom dans l'archive. (S'applique uniquement à zip_file_add(), et uniquement si ZIP_FL_OVERWRITE n'est pas fourni). |
| ZIP_ER_INVAL | la source ou le nom sont NULL, ou l'index n'est pas valide. |
| ZIP_ER_MEMORY | La mémoire requise n'a pas pu être allouée. |
| ZIP_ER_RDONLY | L'archive a été ouverte en mode lecture seule. |
Historique
zip_file_add() et zip_file_replace() ont été ajoutés dans libzip 0.11.
Voir également
libzip(), zip_source()
Dernière mise à jour : Mercredi, le 5 Février 2025