zip_stat_index |
ZIP : Index de statistique |
|---|---|
| libzip | |
Syntaxe
| int zip_stat_index(zip_t *archive, zip_uint64_t index, zip_flags_t flags, zip_stat_t *sb); |
Retour
En cas de réussite, 0 est renvoyé. Sinon, -1 est renvoyé et les informations d'erreur dans l'archive sont définies pour indiquer l'erreur.
Description
Cette fonction permet de récupérer des informations sur un fichier dans l'archive ZIP en fonction de son index.
Remarques
- La fonction zip_stat() obtient des informations sur le fichier nommé fname dans l'archive. Le paramètre flags spécifie comment la recherche de nom doit être effectuée. Ses valeurs sont décrites dans zip_name_locate(). De plus, ZIP_FL_UNCHANGED peut être associé à lui pour demander des informations sur le fichier d'origine dans l'archive, en ignorant les modifications apportées.
- La fonction zip_stat_index() obtient des informations sur le fichier à la position index.
- Le paramètre sb est un pointeur vers une structure zip_stat (illustrée ci-dessous), dans laquelle sont placées les informations sur le fichier :
- struct zip_stat {
- zip_uint64_t valid; /* quels champs ont des valeurs valides */
- const char *name; /* nom du fichier */
- zip_uint64_t index; /* index dans les archives */
- zip_uint64_t size; /* taille du fichier (non compressé) */
- zip_uint64_t comp_size; /* taille du fichier (compressé) */
- time_t mtime; /* heure de modification */
- zip_uint32_t crc; /* CRC des données du fichier */
- zip_uint16_t comp_method; /* Méthode de compression utilisée */
- zip_uint16_t encryption_method; /* Méthode de cryptage utilisée */
- zip_uint32_t flags; /* Réservé pour une utilisation future */
- };
La structure pointée par sb doit être allouée avant d'appeler zip_stat() ou zip_stat_index().
Le champ valide de la structure spécifie quels autres champs sont valides. Vérifiez si les indicateurs définis par les définitions suivantes sont valides avant d'accéder aux champs :
| Constante | Champ |
|---|---|
| ZIP_STAT_NAME | name |
| ZIP_STAT_INDEX | index |
| ZIP_STAT_SIZE | size |
| ZIP_STAT_COMP_SIZE | comp_size |
| ZIP_STAT_MTIME | mtime |
| ZIP_STAT_CRC | crc |
| ZIP_STAT_COMP_METHOD | comp_method |
| ZIP_STAT_ENCRYPTION_METHOD | encryption_method |
| ZIP_STAT_FLAGS | flags |
Erreurs
La fonction zip_stat() peut échouer pour l'une des erreurs spécifiées pour la routine zip_name_locate().
La fonction zip_stat_index() échoue et définit les informations d'erreur sur ZIP_ER_INVAL si l'index n'est pas valide. Si ZIP_FL_UNCHANGED n'est pas défini et qu'aucune information ne peut être obtenue à partir du rappel source, les informations d'erreur sont définies sur ZIP_ER_CHANGED.
Historique
zip_stat() a été ajouté dans libzip 0.6. Dans libzip 0.11, le type d'indicateurs a été modifié de int à zip_flags_t.
zip_stat_index() a été ajouté dans libzip 0.6. Dans libzip 0.10, le type d'index a été modifié de int à zip_uint64_t. Dans libzip 0.11, le type d'indicateurs a été modifié de int à zip_flags_t.
Voir également
libzip(), zip_get_num_entries(), zip_name_locate(), zip_stat_init()