J'essaie de décompresser par programme un fichier zippé.
J'ai essayé d'utiliser la System.IO.Compression.GZipStream
classe en .NET, mais lorsque mon application s'exécute (en fait un test unitaire), j'obtiens cette exception:
System.IO.InvalidDataException: le nombre magique dans l'en-tête GZip n'est pas correct. Assurez-vous que vous passez dans un flux GZip ..
Je me rends compte maintenant qu'un .zip
fichier n'est pas le même qu'un .gz
fichier, et ce GZip
n'est pas la même chose que Zip
.
Cependant, comme je suis capable d'extraire le fichier en double-cliquant manuellement sur le fichier compressé puis en cliquant sur le bouton "Extraire tous les fichiers", je pense qu'il devrait également y avoir un moyen de le faire dans le code.
Par conséquent, j'ai essayé d'utiliser Process.Start()
avec le chemin d'accès au fichier compressé en entrée. Cela amène mon application à ouvrir une fenêtre affichant le contenu du fichier compressé. C'est très bien, mais l'application sera installée sur un serveur sans aucun pour cliquer sur le bouton "Extraire tous les fichiers".
Alors, comment puis-je obtenir mon application pour extraire les fichiers dans les fichiers compressés?
Ou existe-t-il une autre façon de procéder? Je préfère le faire en code, sans télécharger de bibliothèques ou d'applications tierces; le service de sécurité n'a pas trop envie de ça ...