Cette question découle d'une question sur la bibliothèque Crypto++ sur Stack Overflow : Comment ajouter un nom de fichier à l'archive si on la compresse avec la classe Gzip ? .
Gzip, comme spécifié dans RFC 1952 comporte un champ facultatif pour le nom du fichier original :
(if FLG.FNAME set)
+=========================================+
|...original file name, zero-terminated...| (more-->)
+=========================================+
Si le FNAME
est activé dans le champ drapeau, alors le nom de fichier original est présent.
Nous avons ajouté cette fonctionnalité à Crypto++ et l'avons testée sur OS X. Sur OS X, il semble que la gzip
le programme Unarchiver (le programme d'archivage par défaut), et le logiciel Navigateur d'archives (achat sur App Store) ne respectent pas le nom de fichier original. En d'autres termes, chaque fichier se décompresse en un nom de fichier qui est le nom de l'archive sans l'élément gz
et non le nom du fichier original tel qu'il apparaît dans l'en-tête.
Par exemple, voici une image sous la rubrique Navigateur d'archives . Le champ du nom de fichier original est défini comme suit test-filename.txt
mais l'outil affiche le nom du fichier comme suit gzip-test
et le décompresse dans un fichier nommé gzip-test
:
GZip
(et Gunzip
) est pas une norme IEEE Commande Unix Je n'arrive donc pas à savoir où chercher des informations sur le comportement attendu.
Est-ce un comportement attendu ? Ou est-ce que je vois un bug dans trois programmes différents ?
Si c'est prévu, alors à quoi sert le nom de fichier original ?