zip_name_locate |
ZIP : Emplacement du nom |
---|---|
libzip |
Syntaxe
zip_int64_t zip_name_locate(zip_t *archive, const char *fname, zip_flags_t flags); |
Retour
zip_name_locate() renvoie l'index du fichier nommé fname ou -1, si l'archive ne contient pas d'entrée de ce nom.
Description
Cette fonction permet de retourner l'index d'un fichier dans l'archive ZIP en fonction de son nom.
Remarques
- La fonction zip_name_locate() renvoie l'index du fichier nommé fname dans l'archive. Si l'archive ne contient pas de fichier portant ce nom, -1 est renvoyé.
- Si ni ZIP_FL_ENC_RAW ni ZIP_FL_ENC_STRICT ne sont spécifiés, devinez l'encodage du nom dans l'archive ZIP et convertissez-le en UTF-8, si nécessaire, avant de comparer.
- Si ni ZIP_FL_ENC_CP437 ni ZIP_FL_ENC_UTF_8 ne sont spécifiés, devinez l'encodage de fname.
- Seuls CP-437 et UTF-8 sont reconnus.
- Les indicateurs sont spécifiés en combinant les valeurs suivantes par un ou, ou 0 pour aucune d'entre elles :
- ASCII est un sous-ensemble de CP-437 et UTF-8.
Constante | Description |
---|---|
ZIP_FL_NOCASE | Ignorer les distinctions de casse. (Ne fonctionnera bien que si les noms de fichiers sont ASCII.) Avec cet indicateur, zip_name_locate() sera lent pour les archives contenant de nombreux fichiers. |
ZIP_FL_NODIR | Ignorer la partie répertoire du nom de fichier dans l'archive. Avec cette option, zip_name_locate() sera lent pour les archives contenant de nombreux fichiers. |
ZIP_FL_ENC_GUESS | Cet indicateur n'a aucun effet (sa valeur est 0) ; il peut être utilisé pour indiquer explicitement l'absence d'indicateurs d'encodage. |
ZIP_FL_ENC_RAW | Comparez fname avec les noms non modifiés tels qu'ils sont dans l'archive ZIP, sans les convertir en UTF-8. |
ZIP_FL_ENC_STRICT | Suivez la spécification ZIP et attendez-vous à des noms codés CP-437 dans l'archive ZIP (sauf s'ils sont explicitement marqués comme UTF-8). Convertissez-les en UTF-8 avant de les comparer. |
ZIP_FL_ENC_CP437 | fname est codé comme CP-437. |
ZIP_FL_ENC_UTF_8 | fname est codé en UTF-8. |
Erreurs
zip_name_locate() échoue si :
Constante | Description |
---|---|
ZIP_ER_INVAL | L'un des paramètres n'est pas valide. |
ZIP_ER_MEMORY | La mémoire requise n'a pas pu être allouée. |
ZIP_ER_NOENT | Aucune entrée du nom fname n'est trouvée dans l'archive. |
Historique
zip_name_locate() a été ajouté dans libzip 0.6. Dans libzip 0.11, le type de retour a été modifié de int à zip_int64_t. Dans libzip 0.11, le type d'indicateurs a été modifié de int à zip_flags_t.
Voir également
libzip(), zip_get_name()
Dernière mise à jour : Mercredi, le 5 Février 2025