zip_get_name |
ZIP : Demande le nom |
|---|---|
| libzip | |
Syntaxe
| const char * zip_get_name(zip_t *archive, zip_uint64_t index, zip_flags_t flags); |
Retour
Une fois l'opération terminée avec succès, un pointeur vers le nom est renvoyé. Sinon, NULL et le code d'erreur dans l'archive sont définis pour indiquer l'erreur.
Description
Cette fonction permet de retourner le nom d'un fichier dans l'archive ZIP en fonction de son index.
Remarques
- La fonction zip_get_name() renvoie le nom du fichier à la position index dans l'archive. Le nom est encodé en UTF-8 sauf si ZIP_FL_ENC_RAW a été spécifié (voir ci-dessous).
- Si flags est défini sur ZIP_FL_UNCHANGED, le nom de fichier d'origine inchangé est renvoyé. La chaîne renvoyée ne doit pas être modifiée ou libérée et devient invalide lorsque l'archive est fermée.
- De plus, les indicateurs suivants sont pris en charge :
Constante Description ZIP_FL_ENC_RAW Renvoie les noms non modifiés tels qu'ils sont dans l'archive ZIP. ZIP_FL_ENC_GUESS (Par défaut.) Devinez l'encodage du nom dans l'archive ZIP et convertissez-le en UTF-8, si nécessaire. (Seuls CP-437 et UTF-8 sont reconnus.) ZIP_FL_ENC_STRICT Suivez la spécification ZIP et attendez-vous à ce que les noms soient codés CP-437 dans l'archive ZIP (sauf s'ils sont explicitement marqués comme UTF-8). Convertissez-le en UTF-8. - ASCII est un sous-ensemble de CP-437 et UTF-8.
Erreurs
zip_get_name() échoue si :
| Constante | Description |
|---|---|
| ZIP_ER_DELETED | index fait référence à un fichier qui a été supprimé (voir zip_delete()). |
| ZIP_ER_INVAL | ndex n'est pas un index de fichier valide dans l'archive, ou index pointe vers un fichier ajouté et ZIP_FL_UNCHANGED est défini. |
| ZIP_ER_MEMORY | La mémoire requise n'a pas pu être allouée. |
Historique
zip_get_name() 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_name_locate()
Dernière mise à jour : Mercredi, le 5 Février 2025