zip_set_file_compression |
ZIP : Fixe la compression de fichier |
|---|---|
| libzip | |
Syntaxe
| int zip_set_file_compression(zip_t *archive, zip_uint64_t index, zip_int32_t comp, zip_uint32_t comp_flags); |
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 définir la méthode de compression d'un fichier dans l'archive ZIP.
Remarques
- La fonction zip_set_file_compression() définit la méthode de compression du fichier à la position index dans l'archive zip sur comp avec les indicateurs comp_flags spécifiques à la méthode de compression. Le comp est le même que celui renvoyé par zip_stat(). Pour le paramètre comp, actuellement seules les valeurs suivantes sont prises en charge :
- Seules les méthodes deflate et store peuvent être considérées comme universellement prises en charge.
- Le paramètre comp_flags définit le niveau de compression. Cette valeur dépend de l'algorithme de compression. En général, des nombres inférieurs signifient une décompression plus rapide et des nombres supérieurs signifient une décompression plus lente. Pour ZIP_CM_BZIP, ZIP_CM_DEFLATE et ZIP_CM_XZ, 1 est la compression la plus rapide et 9 la meilleure, 0 choisit la valeur par défaut. Pour ZIP_CM_ZSTD, les valeurs possibles sont ZSTD_minCLevel() à ZSTD_maxCLevel(); les valeurs négatives doivent être converties en zip_uint32_t.
- D'autres indicateurs spécifiques à la méthode de compression peuvent être ajoutés au fil du temps.
- La méthode de compression actuelle pour un fichier dans une archive zip peut être déterminée à l'aide de zip_stat().
| Constante | Description |
|---|---|
| ZIP_CM_DEFAULT | Compression par défaut ; actuellement identique à ZIP_CM_DEFLATE, mais les indicateurs sont ignorés. |
| ZIP_CM_STORE | Entrepose le fichier non compressé. |
| ZIP_CM_BZIP2 | Compresse le fichier en utilisant l'algorithme bzip2(). |
| ZIP_CM_DEFLATE | Dégonfle le fichier avec l'algorithme zlib() et les options par défaut. |
| ZIP_CM_XZ | Utilise l'algorithme xz() pour la compression. |
| ZIP_CM_ZSTD | Utilisez l'algorithme zstd() pour la compression. |
Erreurs
zip_set_file_compression() échoue si :
| Constante | Description |
|---|---|
| ZIP_ER_COMPNOTSUPP | Méthode de compression non prise en charge demandée. |
| ZIP_ER_INVAL | index n'est pas un index de fichier valide dans l'archive, ou la combinaison de paramètres n'est pas valide. |
| ZIP_ER_RDONLY | Fichier zip en lecture seulement, aucune modification autorisée. |
Historique
zip_set_file_compression() a été ajouté dans libzip 0.11.
Voir également
libzip(), zip_compression_method_supported(), zip_stat()
Dernière mise à jour : Mercredi, le 5 Février 2025