Je travaille dans C #, et je télécharge un fichier zip avec un fichier zip avec un fichier XML. Et je souhaite charger ce fichier XML. C'est ce que j'ai jusqu'à présent: dans Ce que je fais mal? P> P> document.load code> Je reçois toujours l'exception suivante:
Le numéro magique dans l'en-tête GZIP n'est pas correct. Assurez-vous que vous passez dans un flux GZIP. P>
5 Réponses :
J'utilise Sharpziplib et ça marche bien!
ci-dessous est une fonction qui encapsule la bibliothèque p>
de Classe Gzipstream Description: < / p>
Les objets gzipstream compressés écrites dans un fichier avec une extension de .gz peuvent être décompressés en utilisant de nombreux outils de compression courants; Cependant, cette classe ne fournit pas de manière intrinsèquement fonctionnalité pour ajouter des fichiers à ou extraire des fichiers à partir d'archives .zip p> blockQuote>
Donc, à moins que vous contrôlez des fichiers côté serveur, je vous suggère de rechercher une bibliothèque spécifique ciblée à zip (SharpziPLib par exemple). P>
Comme les autres ont mentionné GZIP et ZIP ne sont pas les mêmes, vous devrez peut-être utiliser une bibliothèque ZIP. J'utilise une bibliothèque appelée: DotNetZip - disponible sur le site ci-dessous: P>
Apparemment SharpziPLib est maintenant non saintimé et vous voulez probablement éviter: https://stackoverflow.com/a/593030
in .NET 4.5 Il y a maintenant Prise en charge intégrée pour les fichiers Zip , donc pour votre exemple ce serait: < / p>
Si vous souhaitez que les autres formats de compression ne sont pas pris en charge comme TGZ prenant en charge .NET CORE et NETFX ESSSY Github.com/adamHcock/ SharpCompress
Si vous avez un tableau d'octets contenant une archive ZIP avec un seul fichier, vous pouvez utiliser la classe La fonction suivante, adaptée de Cette réponse , fonctionne pour moi: p> ziparaRarchive code> pour obtenir un tableau d'octets décompressé avec les données du fichier.
ZipRarchive code> est contenu dans .NET 4.5, dans l'assemblage
system.io.cression.filesystem code> (vous devez le référencer explicitement).
Téléchargez-vous un
gzip code> ou un
zip code>? Les deux ne sont pas les mêmes.
zip! = gzip code> - voir en.wikipedia.org/wiki/gzip A> et en.wikipedia.org/wiki/zip_%28file_format%29
Je suppose que c'est ma première erreur. C'est un fichier zip non gzip.