zip_file_extra_field_get_by_id |
ZIP : Demande le champ extra de fichier |
|---|---|
| libzip | |
Syntaxe
| const zip_uint8_t * zip_file_extra_field_get_by_id(zip_t *archive, zip_uint64_t index, zip_uint16_t extra_field_id, zip_uint16_t extra_field_index, zip_uint16_t *lenp, zip_flags_t flags); |
Retour
En cas de réussite, un pointeur vers un champ supplémentaire est renvoyé, ou NULL s'il n'existe aucun champ supplémentaire avec cet extra_field_index pour le fichier avec l'index index. En cas d'erreur, NULL est renvoyé et le code d'erreur dans l'archive est défini pour indiquer l'erreur.
Description
Cette fonction permet de récupérer un champ supplémentaire spécifique d'un fichier ZIP en utilisant un identifiant.
Remarques
- La fonction zip_file_extra_field_get() renvoie le champ supplémentaire avec l'index extra_field_index pour le fichier à la position index dans l'archive zip. Ce pointeur ne doit pas être modifié ou libéré free et devient invalide lorsque l'archive est fermée. Si idp n'est pas NULL, l'entier vers lequel il pointe sera défini sur l'ID (signature à deux octets) du champ supplémentaire sélectionné. Si lenp n'est pas NULL, l'entier vers lequel il pointe sera défini sur la longueur du champ supplémentaire. En règle générale, lenp et idp doivent être transmis car seules les données du champ supplémentaire sont renvoyées (c'est-à-dire ni l'ID ni la longueur, si les paramètres idp et lenp ne sont pas fournis).
- Les indicateurs suivants sont pris en charge :
- La fonction zip_file_extra_field_get_by_id() renvoie le champ supplémentaire avec l'ID (signature sur deux octets) extra_field_id et l'index extra_field_index (en d'autres termes, le champ supplémentaire extra_field_index avec l'ID extra_field_id). Les autres paramètres sont les mêmes que pour zip_file_extra_field_get().
- Veuillez noter que les ID de champ supplémentaires 0x0001 (extension ZIP64), 0x6375 (commentaire Infozip UTF-8) et 0x7075 (nom de fichier Infozip UTF-8) ne peuvent pas être lus à l'aide de zip_file_extra_field_get() car ils sont utilisés par libzip() en interne.
| Constante | Description |
|---|---|
| ZIP_FL_CENTRAL | Renvoyer des champs supplémentaires à partir du répertoire central de l'archive. |
| ZIP_FL_LOCAL | Renvoie des champs supplémentaires à partir des en-têtes de fichiers locaux. |
| ZIP_FL_UNCHANGED | Renvoyer les champs supplémentaires d'origine inchangés, en ignorant les modifications apportées. |
Erreurs
zip_file_extra_field_get() et zip_file_extra_field_get_by_id() échouent si :
| Constante | Description |
|---|---|
| ZIP_ER_NOENT | index n'est pas un index de fichier valide dans l'archive, ou extra_field_index n'est pas un index de fichier supplémentaire valide (pour l'ID extra_field_id). |
Historique
zip_file_extra_field_get() et zip_file_extra_field_get_by_id() ont été ajoutés dans libzip 0.11.
Voir également
libzip(), zip_file_extra_field_delete(), zip_file_extra_field_set(), zip_file_extra_fields_count().
Dernière mise à jour : Mercredi, le 5 Février 2025