zip_file_extra_field_set |
ZIP : Fixe le champ de fichier extra |
|---|---|
| libzip | |
Syntaxe
| int zip_file_extra_field_set(zip_t *archive, zip_uint64_t index, zip_uint16_t extra_field_id, zip_uint16_t extra_field_index, const zip_uint8_t *extra_field_data, zip_uint16_t len, zip_flags_t flags); |
Retour
En cas de réussite, 0 est renvoyé. Sinon, -1 est renvoyé et le code d'erreur dans l'archive est défini pour indiquer l'erreur.
Description
Cette fonction permet de définir un champ supplémentaire pour un fichier dans une archive ZIP.
Remarques
- La fonction zip_file_extra_field_set() définit le champ supplémentaire avec l'ID (signature à deux octets) extra_field_id et l'index extra_field_index pour le fichier à la position index dans l'archive zip. Les données du champ supplémentaire seront définies sur extra_field_data et la longueur len. Si une nouvelle entrée doit être ajoutée, définissez extra_field_index sur ZIP_EXTRA_FIELD_NEW.
- Au moins l'un des indicateurs suivants doit être défini :
- Veuillez noter que les identifiants de champs supplémentaires 0x0001 (extension ZIP64), 0x6375 (commentaire Infozip UTF-8) et 0x7075 (nom de fichier Infozip UTF-8) ne peuvent pas être définis à l'aide de zip_file_extra_field_set() car ils sont définis automatiquement par libzip() lorsque cela est nécessaire.
| Constante | Description |
|---|---|
| ZIP_FL_CENTRAL | Définir un champ supplémentaire dans le répertoire central de l'archive. |
| ZIP_FL_LOCAL | Définir un champ supplémentaire dans les entêtes du fichier local. |
Erreurs
zip_file_extra_field_set() échoue si :
| Constante | Description |
|---|---|
| ZIP_ER_INVAL | La taille du champ supplémentaire est trop grande (l'ID et la longueur nécessitent 4 octets ; la longueur maximale de tous les champs supplémentaires pour un fichier combiné est de 65 536 octets). Cette erreur se produit également si extra_field_index est trop grand. |
| ZIP_ER_MEMORY | La mémoire requise n'a pas pu être allouée. |
| ZIP_ER_NOENT | index n'est pas un index de fichier valide dans l'archive. |
Historique
zip_file_extra_field_set() a été ajouté dans libzip 0.11.
Voir également
libzip(), zip_file_extra_field_delete(), zip_file_extra_field_get(), zip_file_extra_fields_count().
Dernière mise à jour : Mercredi, le 5 Février 2025